From 502c67d7ae09ea0c3ca597241fb0821555853076 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Mon, 8 May 2017 23:43:16 +0300 Subject: templates for staticcall tests --- .../stStaticCall/static_ABAcalls0Filler.json | 72 ++++ .../stStaticCall/static_ABAcalls1Filler.json | 72 ++++ .../stStaticCall/static_ABAcalls2Filler.json | 92 +++++ .../stStaticCall/static_ABAcalls3Filler.json | 92 +++++ .../static_ABAcallsSuicide0Filler.json | 67 ++++ .../static_ABAcallsSuicide1Filler.json | 77 ++++ .../static_CALL_OneVCallSuicideFiller.json | 94 +++++ .../static_CALL_ZeroVCallSuicideFiller.json | 94 +++++ ...tic_CREATE_ContractSuicideDuringInitFiller.json | 86 +++++ ...uicideDuringInit_ThenStoreThenReturnFiller.json | 106 ++++++ ..._ContractSuicideDuringInit_WithValueFiller.json | 86 +++++ ...tSuicideDuringInit_WithValueToItselfFiller.json | 148 ++++++++ ...TE_EContractCreateEContractInInit_TrFiller.json | 84 +++++ ...ContractCreateNEContractInInitOOG_TrFiller.json | 115 ++++++ ...E_EContractCreateNEContractInInit_TrFiller.json | 90 +++++ ...E_EContract_ThenCALLToNonExistentAccFiller.json | 121 ++++++ ...c_CREATE_EmptyContractAndCallIt_0weiFiller.json | 112 ++++++ ...c_CREATE_EmptyContractAndCallIt_1weiFiller.json | 115 ++++++ ...ptyContractWithStorageAndCallIt_0weiFiller.json | 135 +++++++ ...ptyContractWithStorageAndCallIt_1weiFiller.json | 114 ++++++ ...atic_CREATE_EmptyContractWithStorageFiller.json | 129 +++++++ ...empty000CreateinInitCode_TransactionFiller.json | 94 +++++ .../static_Call1024BalanceTooLow2Filler.json | 64 ++++ .../static_Call1024BalanceTooLowFiller.json | 71 ++++ .../stStaticCall/static_Call1024OOGFiller.json | 65 ++++ .../static_Call1024PreCalls2Filler.json | 70 ++++ .../static_Call1024PreCalls3Filler.json | 66 ++++ .../static_Call1024PreCallsFiller.json | 72 ++++ .../stStaticCall/static_Call10Filler.json | 68 ++++ .../static_Call1MB1024CalldepthFiller.json | 130 +++++++ .../stStaticCall/static_Call50000Filler.json | 90 +++++ .../stStaticCall/static_Call50000_ecrecFiller.json | 76 ++++ .../static_Call50000_identity2Filler.json | 76 ++++ .../static_Call50000_identityFiller.json | 76 ++++ .../static_Call50000_rip160Filler.json | 78 ++++ .../static_Call50000_sha256Filler.json | 81 ++++ .../static_Call50000bytesContract50_1Filler.json | 88 +++++ .../static_Call50000bytesContract50_2Filler.json | 89 +++++ .../static_Call50000bytesContract50_3Filler.json | 88 +++++ ...codeConsumeMoreGasThenTransactionHasFiller.json | 80 ++++ ...AskMoreGasOnDepth2ThenTransactionHasFiller.json | 89 +++++ ...ContractToCreateContractAndCallItOOGFiller.json | 124 +++++++ ...lContractToCreateContractOOGBonusGasFiller.json | 124 +++++++ ...atic_CallContractToCreateContractOOGFiller.json | 62 ++++ ...ractWhichWouldCreateContractIfCalledFiller.json | 133 +++++++ .../stStaticCall/static_CallEcrecover0Filler.json | 62 ++++ .../static_CallEcrecover0_0inputFiller.json | 60 +++ .../static_CallEcrecover0_Gas2999Filler.json | 60 +++ .../static_CallEcrecover0_NoGasFiller.json | 84 +++++ ...c_CallEcrecover0_completeReturnValueFiller.json | 61 +++ .../static_CallEcrecover0_gas3000Filler.json | 62 ++++ ...allEcrecover0_overlappingInputOutputFiller.json | 62 ++++ .../stStaticCall/static_CallEcrecover1Filler.json | 60 +++ .../stStaticCall/static_CallEcrecover2Filler.json | 60 +++ .../stStaticCall/static_CallEcrecover3Filler.json | 61 +++ .../stStaticCall/static_CallEcrecover80Filler.json | 62 ++++ .../static_CallEcrecoverCheckLengthFiller.json | 62 ++++ ...tatic_CallEcrecoverCheckLengthWrongVFiller.json | 62 ++++ .../static_CallEcrecoverH_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverR_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverS_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverV_prefixed0Filler.json | 62 ++++ .../static_CallGoesOOGOnSecondLevel2Filler.json | 105 ++++++ .../static_CallGoesOOGOnSecondLevelFiller.json | 106 ++++++ .../stStaticCall/static_CallIdentitiy_1Filler.json | 61 +++ .../static_CallIdentity_1_nonzeroValueFiller.json | 64 ++++ .../stStaticCall/static_CallIdentity_2Filler.json | 61 +++ .../stStaticCall/static_CallIdentity_3Filler.json | 61 +++ .../stStaticCall/static_CallIdentity_4Filler.json | 61 +++ .../static_CallIdentity_4_gas17Filler.json | 61 +++ .../static_CallIdentity_4_gas18Filler.json | 61 +++ .../stStaticCall/static_CallIdentity_5Filler.json | 60 +++ .../stStaticCall/static_CallLoseGasOOGFiller.json | 64 ++++ .../static_CallRecursiveBomb0Filler.json | 90 +++++ ...allRecursiveBomb0_OOG_atMaxCallDepthFiller.json | 77 ++++ .../static_CallRecursiveBomb1Filler.json | 77 ++++ .../static_CallRecursiveBomb2Filler.json | 77 ++++ .../static_CallRecursiveBomb3Filler.json | 75 ++++ .../static_CallRecursiveBombLog2Filler.json | 90 +++++ .../static_CallRecursiveBombLogFiller.json | 90 +++++ .../static_CallRecursiveBombPreCall2Filler.json | 67 ++++ .../static_CallRecursiveBombPreCallFiller.json | 102 +++++ .../stStaticCall/static_CallRipemd160_1Filler.json | 61 +++ .../stStaticCall/static_CallRipemd160_2Filler.json | 61 +++ .../stStaticCall/static_CallRipemd160_3Filler.json | 61 +++ .../static_CallRipemd160_3_postfixed0Filler.json | 61 +++ .../static_CallRipemd160_3_prefixed0Filler.json | 61 +++ .../stStaticCall/static_CallRipemd160_4Filler.json | 61 +++ .../static_CallRipemd160_4_gas719Filler.json | 60 +++ .../stStaticCall/static_CallRipemd160_5Filler.json | 60 +++ .../stStaticCall/static_CallSha256_1Filler.json | 61 +++ .../static_CallSha256_1_nonzeroValueFiller.json | 64 ++++ .../stStaticCall/static_CallSha256_2Filler.json | 61 +++ .../stStaticCall/static_CallSha256_3Filler.json | 61 +++ .../static_CallSha256_3_postfix0Filler.json | 61 +++ .../static_CallSha256_3_prefix0Filler.json | 61 +++ .../stStaticCall/static_CallSha256_4Filler.json | 61 +++ .../static_CallSha256_4_gas99Filler.json | 61 +++ .../stStaticCall/static_CallSha256_5Filler.json | 60 +++ .../static_CallToNameRegistrator0Filler.json | 68 ++++ ...llToNameRegistratorAddressTooBigLeftFiller.json | 67 ++++ ...lToNameRegistratorAddressTooBigRightFiller.json | 68 ++++ ...istratorMemOOGAndInsufficientBalanceFiller.json | 67 ++++ ..._CallToNameRegistratorNotMuchMemory0Filler.json | 67 ++++ ..._CallToNameRegistratorNotMuchMemory1Filler.json | 67 ++++ ...static_CallToNameRegistratorOutOfGasFiller.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory0Filler.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory1Filler.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory2Filler.json | 67 ++++ ...oNameRegistratorZeorSizeMemExpansionFiller.json | 67 ++++ .../stStaticCall/static_CallToReturn1Filler.json | 67 ++++ .../stStaticCall/static_CalltoReturn2Filler.json | 68 ++++ ...CallThatAskForeGasThenTrabsactionHasFiller.json | 83 +++++ .../static_InternalCallHittingGasLimit2Filler.json | 67 ++++ .../static_InternalCallHittingGasLimitFiller.json | 67 ++++ ...c_InternalCallHittingGasLimitSuccessFiller.json | 68 ++++ .../static_InternlCallStoreClearsOOGFiller.json | 94 +++++ .../static_InternlCallStoreClearsSuccesFiller.json | 84 +++++ .../static_LoopCallsDepthThenRevert2Filler.json | 61 +++ .../static_LoopCallsDepthThenRevert3Filler.json | 65 ++++ .../static_LoopCallsDepthThenRevertFiller.json | 94 +++++ .../static_LoopCallsThenRevertFiller.json | 114 ++++++ .../static_NewGasPriceForCodesFiller.json | 154 ++++++++ .../static_NonZeroValue_CALL2Filler.json | 88 +++++ .../static_NonZeroValue_CALL_ToEmptyFiller.json | 113 ++++++ ...onZeroValue_CALL_ToNonNonZeroBalanceFiller.json | 91 +++++ ...ic_NonZeroValue_CALL_ToOneStorageKeyFiller.json | 123 ++++++ .../stStaticCall/static_PostToReturn1Filler.json | 68 ++++ .../stStaticCall/static_RETURN_BoundsFiller.json | 183 +++++++++ .../static_RETURN_BoundsOOGFiller.json | 172 +++++++++ .../stStaticCall/static_RawCallGasAskFiller.json | 95 +++++ .../stStaticCall/static_RawCallGasFiller.json | 95 +++++ .../static_RawCallGasValueTransferAskFiller.json | 95 +++++ .../static_RawCallGasValueTransferFiller.json | 95 +++++ ...tic_RawCallGasValueTransferMemoryAskFiller.json | 95 +++++ ...static_RawCallGasValueTransferMemoryFiller.json | 95 +++++ .../static_RawCallMemoryGasAskFiller.json | 95 +++++ .../static_RawCallMemoryGasFiller.json | 95 +++++ .../stStaticCall/static_Return50000Filler.json | 90 +++++ .../stStaticCall/static_Return50000_2Filler.json | 90 +++++ .../stStaticCall/static_ReturnTest2Filler.json | 68 ++++ .../stStaticCall/static_ReturnTestFiller.json | 67 ++++ .../stStaticCall/static_RevertDepth2Filler.json | 106 ++++++ ...ic_RevertDepthCreateAddressCollisionFiller.json | 222 +++++++++++ .../static_RevertDepthCreateOOGFiller.json | 178 +++++++++ .../static_RevertOpcodeCallsFiller.json | 299 +++++++++++++++ .../static_RevertOpcodeDirectCallFiller.json | 116 ++++++ .../static_RevertOpcodeMultipleSubCallsFiller.json | 412 +++++++++++++++++++++ .../static_RevertOpcodeReturnFiller.json | 157 ++++++++ .../static_RevertPrecompiledTouchFiller.json | 135 +++++++ .../static_RevertPrefoundCallFiller.json | 105 ++++++ .../static_RevertPrefoundCallOOGFiller.json | 71 ++++ .../static_RevertPrefoundEmptyCallFiller.json | 101 +++++ .../static_RevertPrefoundEmptyCallOOGFiller.json | 71 ++++ ...reClearsAndInternlCallStoreClearsOOGFiller.json | 101 +++++ ...earsAndInternlCallStoreClearsSuccessFiller.json | 89 +++++ .../static_SuicideToExistingContractFiller.json | 91 +++++ .../static_SuicideToNotExistingContractFiller.json | 109 ++++++ ...ernlCallSuicidesBonusGasAtCallFailedFiller.json | 66 ++++ ...AndInternlCallSuicidesBonusGasAtCallFiller.json | 84 +++++ ...ic_SuicidesAndInternlCallSuicidesOOGFiller.json | 72 ++++ ...uicidesAndInternlCallSuicidesSuccessFiller.json | 82 ++++ .../static_SuicidesStopAfterSuicideFiller.json | 73 ++++ .../static_TouchToEmptyAccountRevert2Filler.json | 77 ++++ .../static_TouchToEmptyAccountRevert3Filler.json | 91 +++++ .../static_TouchToEmptyAccountRevertFiller.json | 77 ++++ .../static_Transaction64Rule_d64e0Filler.json | 75 ++++ .../static_Transaction64Rule_d64m1Filler.json | 96 +++++ .../static_Transaction64Rule_d64p1Filler.json | 76 ++++ .../stStaticCall/static_ZeroValue_CALL2Filler.json | 67 ++++ .../static_ZeroValue_CALL_OOGRevertFiller.json | 69 ++++ .../static_ZeroValue_CALL_ToEmpty2Filler.json | 74 ++++ ...tic_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json | 76 ++++ ...tic_ZeroValue_CALL_ToNonZeroBalance2Filler.json | 74 ++++ ...alue_CALL_ToNonZeroBalance_OOGRevertFiller.json | 76 ++++ ...atic_ZeroValue_CALL_ToOneStorageKey2Filler.json | 95 +++++ ...Value_CALL_ToOneStorageKey_OOGRevertFiller.json | 77 ++++ .../static_ZeroValue_SUICIDE_OOGRevertFiller.json | 72 ++++ ..._ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json | 79 ++++ ...e_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json | 79 ++++ ...ue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json | 82 ++++ .../stStaticCall/static_callOutput1Filler.json | 63 ++++ .../stStaticCall/static_callOutput2Filler.json | 63 ++++ .../stStaticCall/static_callOutput3FailFiller.json | 63 ++++ .../stStaticCall/static_callOutput3Filler.json | 63 ++++ .../static_callOutput3partialFailFiller.json | 63 ++++ .../static_callOutput3partialFiller.json | 63 ++++ .../static_callWithHighValueAndGasOOGFiller.json | 62 ++++ ...tic_callWithHighValueAndOOGatTxLevelFiller.json | 78 ++++ .../static_callWithHighValueFiller.json | 62 ++++ .../static_callWithHighValueOOGinCallFiller.json | 86 +++++ .../static_call_OOG_additionalGasCosts1Filler.json | 73 ++++ .../static_call_OOG_additionalGasCosts2Filler.json | 65 ++++ .../stStaticCall/static_callcall_00Filler.json | 77 ++++ .../static_callcall_00_OOGEFiller.json | 83 +++++ .../static_callcall_00_OOGE_1Filler.json | 72 ++++ .../static_callcall_00_OOGE_2Filler.json | 72 ++++ .../static_callcall_00_SuicideEndFiller.json | 74 ++++ .../static_callcallcall_000Filler.json | 84 +++++ .../static_callcallcall_000_OOGEFiller.json | 98 +++++ .../static_callcallcall_000_OOGMAfter2Filler.json | 130 +++++++ .../static_callcallcall_000_OOGMAfterFiller.json | 135 +++++++ .../static_callcallcall_000_OOGMBeforeFiller.json | 98 +++++ .../static_callcallcall_000_SuicideEndFiller.json | 81 ++++ ...tatic_callcallcall_000_SuicideMiddleFiller.json | 84 +++++ .../static_callcallcall_ABCB_RECURSIVEFiller.json | 113 ++++++ .../static_callcallcallcode_001Filler.json | 156 ++++++++ .../static_callcallcallcode_001_2Filler.json | 85 +++++ .../static_callcallcallcode_001_OOGEFiller.json | 146 ++++++++ .../static_callcallcallcode_001_OOGE_2Filler.json | 101 +++++ ...atic_callcallcallcode_001_OOGMAfter2Filler.json | 130 +++++++ ...tatic_callcallcallcode_001_OOGMAfterFiller.json | 154 ++++++++ ...tic_callcallcallcode_001_OOGMAfter_2Filler.json | 151 ++++++++ ...tic_callcallcallcode_001_OOGMAfter_3Filler.json | 135 +++++++ ...tic_callcallcallcode_001_OOGMBefore2Filler.json | 98 +++++ ...atic_callcallcallcode_001_OOGMBeforeFiller.json | 150 ++++++++ ...tic_callcallcallcode_001_SuicideEnd2Filler.json | 81 ++++ ...atic_callcallcallcode_001_SuicideEndFiller.json | 137 +++++++ ..._callcallcallcode_001_SuicideMiddle2Filler.json | 85 +++++ ...c_callcallcallcode_001_SuicideMiddleFiller.json | 138 +++++++ ...tic_callcallcallcode_ABCB_RECURSIVE2Filler.json | 113 ++++++ ...atic_callcallcallcode_ABCB_RECURSIVEFiller.json | 152 ++++++++ .../stStaticCall/static_callcallcode_01Filler.json | 125 +++++++ .../static_callcallcode_01_2Filler.json | 78 ++++ .../static_callcallcode_01_OOGEFiller.json | 115 ++++++ .../static_callcallcode_01_OOGE_2Filler.json | 83 +++++ .../static_callcallcode_01_SuicideEnd2Filler.json | 74 ++++ .../static_callcallcode_01_SuicideEndFiller.json | 122 ++++++ .../static_callcallcodecall_010Filler.json | 146 ++++++++ .../static_callcallcodecall_010_2Filler.json | 90 +++++ .../static_callcallcodecall_010_OOGEFiller.json | 146 ++++++++ .../static_callcallcodecall_010_OOGE_2Filler.json | 101 +++++ ...atic_callcallcodecall_010_OOGMAfter2Filler.json | 136 +++++++ ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 150 ++++++++ ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 147 ++++++++ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 141 +++++++ ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 101 +++++ ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 150 ++++++++ ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 85 +++++ ...atic_callcallcodecall_010_SuicideEndFiller.json | 127 +++++++ ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 +++++ ...c_callcallcodecall_010_SuicideMiddleFiller.json | 129 +++++++ ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 113 ++++++ ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 152 ++++++++ .../static_callcallcodecallcode_011Filler.json | 130 +++++++ .../static_callcallcodecallcode_011_2Filler.json | 86 +++++ ...static_callcallcodecallcode_011_OOGEFiller.json | 146 ++++++++ ...atic_callcallcodecallcode_011_OOGE_2Filler.json | 99 +++++ ..._callcallcodecallcode_011_OOGMAfter2Filler.json | 130 +++++++ ...c_callcallcodecallcode_011_OOGMAfterFiller.json | 150 ++++++++ ...callcallcodecallcode_011_OOGMAfter_1Filler.json | 147 ++++++++ ...callcallcodecallcode_011_OOGMAfter_2Filler.json | 137 +++++++ ...callcallcodecallcode_011_OOGMBefore2Filler.json | 98 +++++ ..._callcallcodecallcode_011_OOGMBeforeFiller.json | 150 ++++++++ ...callcallcodecallcode_011_SuicideEnd2Filler.json | 80 ++++ ..._callcallcodecallcode_011_SuicideEndFiller.json | 135 +++++++ ...lcallcodecallcode_011_SuicideMiddle2Filler.json | 94 +++++ ...llcallcodecallcode_011_SuicideMiddleFiller.json | 112 ++++++ ...callcallcodecallcode_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcallcodecallcode_ABCB_RECURSIVEFiller.json | 152 ++++++++ .../static_callcode_checkPCFiller.json | 61 +++ .../stStaticCall/static_callcodecall_10Filler.json | 115 ++++++ .../static_callcodecall_10_2Filler.json | 83 +++++ .../static_callcodecall_10_OOGEFiller.json | 123 ++++++ .../static_callcodecall_10_OOGE_2Filler.json | 84 +++++ .../static_callcodecall_10_SuicideEnd2Filler.json | 78 ++++ .../static_callcodecall_10_SuicideEndFiller.json | 108 ++++++ .../static_callcodecallcall_100Filler.json | 134 +++++++ .../static_callcodecallcall_100_2Filler.json | 95 +++++ .../static_callcodecallcall_100_OOGE2Filler.json | 99 +++++ .../static_callcodecallcall_100_OOGEFiller.json | 148 ++++++++ ...atic_callcodecallcall_100_OOGMAfter2Filler.json | 132 +++++++ ...tatic_callcodecallcall_100_OOGMAfterFiller.json | 150 ++++++++ ...tic_callcodecallcall_100_OOGMAfter_2Filler.json | 147 ++++++++ ...tic_callcodecallcall_100_OOGMAfter_3Filler.json | 133 +++++++ ...tic_callcodecallcall_100_OOGMBefore2Filler.json | 104 ++++++ ...atic_callcodecallcall_100_OOGMBeforeFiller.json | 150 ++++++++ ...tic_callcodecallcall_100_SuicideEnd2Filler.json | 91 +++++ ...atic_callcodecallcall_100_SuicideEndFiller.json | 139 +++++++ ..._callcodecallcall_100_SuicideMiddle2Filler.json | 85 +++++ ...c_callcodecallcall_100_SuicideMiddleFiller.json | 127 +++++++ ...tic_callcodecallcall_ABCB_RECURSIVE2Filler.json | 113 ++++++ ...atic_callcodecallcall_ABCB_RECURSIVEFiller.json | 167 +++++++++ .../static_callcodecallcallcode_101Filler.json | 152 ++++++++ .../static_callcodecallcallcode_101_2Filler.json | 91 +++++ ...static_callcodecallcallcode_101_OOGEFiller.json | 148 ++++++++ ...atic_callcodecallcallcode_101_OOGE_2Filler.json | 99 +++++ ..._callcodecallcallcode_101_OOGMAfter2Filler.json | 136 +++++++ ...c_callcodecallcallcode_101_OOGMAfterFiller.json | 150 ++++++++ ...callcodecallcallcode_101_OOGMAfter_1Filler.json | 131 +++++++ ...callcodecallcallcode_101_OOGMAfter_3Filler.json | 147 ++++++++ ...callcodecallcallcode_101_OOGMBefore2Filler.json | 101 +++++ ..._callcodecallcallcode_101_OOGMBeforeFiller.json | 150 ++++++++ ...callcodecallcallcode_101_SuicideEnd2Filler.json | 84 +++++ ..._callcodecallcallcode_101_SuicideEndFiller.json | 143 +++++++ ...lcodecallcallcode_101_SuicideMiddle2Filler.json | 93 +++++ ...llcodecallcallcode_101_SuicideMiddleFiller.json | 127 +++++++ ...callcodecallcallcode_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcodecallcallcode_ABCB_RECURSIVEFiller.json | 167 +++++++++ .../static_callcodecallcodecall_1102Filler.json | 91 +++++ .../static_callcodecallcodecall_110Filler.json | 140 +++++++ .../static_callcodecallcodecall_110_2Filler.json | 91 +++++ ...tatic_callcodecallcodecall_110_OOGE2Filler.json | 100 +++++ ...static_callcodecallcodecall_110_OOGEFiller.json | 150 ++++++++ ..._callcodecallcodecall_110_OOGMAfter2Filler.json | 136 +++++++ ...c_callcodecallcodecall_110_OOGMAfterFiller.json | 150 ++++++++ ...callcodecallcodecall_110_OOGMAfter_2Filler.json | 147 ++++++++ ...callcodecallcodecall_110_OOGMAfter_3Filler.json | 141 +++++++ ...callcodecallcodecall_110_OOGMBefore2Filler.json | 102 +++++ ..._callcodecallcodecall_110_OOGMBeforeFiller.json | 150 ++++++++ ...callcodecallcodecall_110_SuicideEnd2Filler.json | 81 ++++ ..._callcodecallcodecall_110_SuicideEndFiller.json | 125 +++++++ ...lcodecallcodecall_110_SuicideMiddle2Filler.json | 92 +++++ ...llcodecallcodecall_110_SuicideMiddleFiller.json | 127 +++++++ ...callcodecallcodecall_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcodecallcodecall_ABCB_RECURSIVEFiller.json | 167 +++++++++ ...lcodecallcodecallcode_111_SuicideEndFiller.json | 133 +++++++ ...hatAskMoreGasThenTransactionProvidedFiller.json | 89 +++++ ...dontLeaveEmptyContractViaTransactionFiller.json | 69 ++++ .../stStaticCall/static_log0_emptyMemFiller.json | 67 ++++ .../static_log0_logMemStartTooHighFiller.json | 66 ++++ .../static_log0_logMemsizeTooHighFiller.json | 66 ++++ .../static_log0_logMemsizeZeroFiller.json | 67 ++++ .../static_log0_nonEmptyMemFiller.json | 67 ++++ .../static_log0_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../stStaticCall/static_log1_CallerFiller.json | 67 ++++ .../stStaticCall/static_log1_MaxTopicFiller.json | 67 ++++ .../stStaticCall/static_log1_emptyMemFiller.json | 67 ++++ .../static_log1_logMemStartTooHighFiller.json | 66 ++++ .../static_log1_logMemsizeTooHighFiller.json | 66 ++++ .../static_log1_logMemsizeZeroFiller.json | 67 ++++ .../static_log1_nonEmptyMemFiller.json | 67 ++++ .../static_log1_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../stStaticCall/static_log2_CallerFiller.json | 67 ++++ .../stStaticCall/static_log2_MaxTopicFiller.json | 67 ++++ .../stStaticCall/static_log2_emptyMemFiller.json | 67 ++++ .../static_log2_logMemStartTooHighFiller.json | 66 ++++ .../static_log2_logMemsizeTooHighFiller.json | 66 ++++ .../static_log2_logMemsizeZeroFiller.json | 67 ++++ .../static_log2_nonEmptyMemFiller.json | 67 ++++ .../static_log2_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../stStaticCall/static_log3_CallerFiller.json | 67 ++++ .../stStaticCall/static_log3_MaxTopicFiller.json | 67 ++++ .../stStaticCall/static_log3_PCFiller.json | 67 ++++ .../stStaticCall/static_log3_emptyMemFiller.json | 67 ++++ .../static_log3_logMemStartTooHighFiller.json | 66 ++++ .../static_log3_logMemsizeTooHighFiller.json | 66 ++++ .../static_log3_logMemsizeZeroFiller.json | 67 ++++ .../static_log3_nonEmptyMemFiller.json | 67 ++++ .../static_log3_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../stStaticCall/static_log4_CallerFiller.json | 67 ++++ .../stStaticCall/static_log4_MaxTopicFiller.json | 67 ++++ .../stStaticCall/static_log4_PCFiller.json | 67 ++++ .../stStaticCall/static_log4_emptyMemFiller.json | 67 ++++ .../static_log4_logMemStartTooHighFiller.json | 66 ++++ .../static_log4_logMemsizeTooHighFiller.json | 66 ++++ .../static_log4_logMemsizeZeroFiller.json | 67 ++++ .../static_log4_nonEmptyMemFiller.json | 67 ++++ .../static_log4_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../stStaticCall/static_logInOOG_CallFiller.json | 67 ++++ .../stStaticCall/static_makeMoneyFiller.json | 82 ++++ .../static_refundSuicide50procentCapFiller.json | 110 ++++++ .../stStaticCall/static_refund_CallAFiller.json | 110 ++++++ .../static_refund_CallA_OOGFiller.json | 82 ++++ ...atic_refund_CallA_notEnoughGasInCallFiller.json | 110 ++++++ ...static_refund_CallToSuicideNoStorageFiller.json | 101 +++++ .../static_refund_CallToSuicideStorageFiller.json | 105 ++++++ .../static_refund_CallToSuicideTwiceFiller.json | 108 ++++++ 373 files changed, 35208 insertions(+) create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json new file mode 100644 index 000000000..c62a70411 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json @@ -0,0 +1,72 @@ +{ + "static_ABAcalls0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x24" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json new file mode 100644 index 000000000..00f4999c4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json @@ -0,0 +1,72 @@ +{ + "static_ABAcalls1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json new file mode 100644 index 000000000..b5743d180 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json @@ -0,0 +1,92 @@ +{ + "static_ABAcalls2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Metropolis"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json new file mode 100644 index 000000000..8be1e8fc6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json @@ -0,0 +1,92 @@ +{ + "static_ABAcalls3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Metropolis"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json new file mode 100644 index 000000000..770f12fa8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json @@ -0,0 +1,67 @@ +{ + "static_ABAcallsSuicide0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json new file mode 100644 index 000000000..d37949408 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json @@ -0,0 +1,77 @@ +{ + "static_ABAcallsSuicide1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Metropolis"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "shouldnotexist" : "1" + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (ADD 1 (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0)) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000186a0", "0x00000000000000000000000000000000000000000000000000000000000486a0" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json new file mode 100644 index 000000000..5eef4df16 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json @@ -0,0 +1,94 @@ +{ + "static_CALL_OneVCallSuicide" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085707" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x64", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x086d23" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json new file mode 100644 index 000000000..58794e85f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json @@ -0,0 +1,94 @@ +{ + "static_CALL_ZeroVCallSuicide" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x087133" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08874f" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json new file mode 100644 index 000000000..600c3f2dd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json @@ -0,0 +1,86 @@ +{ + "static_CREATE_ContractSuicideDuringInit" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json new file mode 100644 index 000000000..97e900424 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json @@ -0,0 +1,106 @@ +{ + "static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{ (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b) (STATICCALL 60000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]]11 (RETURN 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600b600055600e6012f3" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json new file mode 100644 index 000000000..fb8609699 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json @@ -0,0 +1,86 @@ +{ + "static_CREATE_ContractSuicideDuringInit_WithValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json new file mode 100644 index 000000000..ae229557f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json @@ -0,0 +1,148 @@ +{ + "static_CREATE_ContractSuicideDuringInit_WithValueToItself" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xe808" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a427ee" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "22870" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999977120" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "53740" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999946250" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "59400" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999940590" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0x6295ee1b4f6dd65047762f924ecd367c17eabf8f)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052736295ee1b4f6dd65047762f924ecd367c17eabf8fff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json new file mode 100644 index 000000000..fbf25acf5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json @@ -0,0 +1,84 @@ +{ + "static_CREATE_EContractCreateEContractInInit_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 32) }", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150602060006000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json new file mode 100644 index 000000000..4e5e74b39 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json @@ -0,0 +1,115 @@ +{ + "static_CREATE_EContractCreateNEContractInInitOOG_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0", + "code" : "0x600c600055", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" + ], + "gasLimit" : [ + "160000", "60000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json new file mode 100644 index 000000000..c7553b303 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json @@ -0,0 +1,90 @@ +{ + "static_CREATE_EContractCreateNEContractInInit_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "64e2ebd6405af8cb348aec519084d3fff42ebba6" : { + "code" : "0x600c600055" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "code" : "0x600c600055" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json new file mode 100644 index 000000000..b791d2154 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json @@ -0,0 +1,121 @@ +{ + "static_CREATE_EContract_ThenCALLToNonExistentAcc" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071d49" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06be35" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06bba1" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 0xe1ecf98489fa9ed60a664fc4998db699cfa39d40 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json new file mode 100644 index 000000000..07724e9a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json @@ -0,0 +1,112 @@ +{ + "static_CREATE_EmptyContractAndCallIt_0wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071fab" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json new file mode 100644 index 000000000..beaf5735d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json @@ -0,0 +1,115 @@ +{ + "static_CREATE_EmptyContractAndCallIt_1wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x01" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x07057f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]](STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json new file mode 100644 index 000000000..7248d21e7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json @@ -0,0 +1,135 @@ +{ + "static_CREATE_EmptyContractWithStorageAndCallIt_0wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x06830d" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json new file mode 100644 index 000000000..3b2a2b7a4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json @@ -0,0 +1,114 @@ +{ + "static_CREATE_EmptyContractWithStorageAndCallIt_1wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x066323" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x0668e1" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json new file mode 100644 index 000000000..2a9aa2cde --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json @@ -0,0 +1,129 @@ +{ + "static_CREATE_EmptyContractWithStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071fc4" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json new file mode 100644 index 000000000..fa5d1370a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json @@ -0,0 +1,94 @@ +{ + "static_CREATE_empty000CreateinInitCode_Transaction" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 0) }", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600060006000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json new file mode 100644 index 000000000..169cb2aca --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json @@ -0,0 +1,64 @@ +{ + "static_Call1024BalanceTooLow2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : [ "Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "17592186099592" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json new file mode 100644 index 000000000..fb9797c9f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json @@ -0,0 +1,71 @@ +{ + "static_Call1024BalanceTooLow" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "2675000", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "17592186099592" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json new file mode 100644 index 000000000..4320b1dc3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json @@ -0,0 +1,65 @@ +{ + "static_Call1024OOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x03e9" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "15720826" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json new file mode 100644 index 000000000..e01af799e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json @@ -0,0 +1,70 @@ +{ + "static_Call1024PreCalls2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json new file mode 100644 index 000000000..df2e65015 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json @@ -0,0 +1,66 @@ +{ + "static_Call1024PreCalls3" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json new file mode 100644 index 000000000..c9f3d3290 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json @@ -0,0 +1,72 @@ +{ + "static_Call1024PreCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json new file mode 100644 index 000000000..74d2ba4a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json @@ -0,0 +1,68 @@ +{ + "static_Call10" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "1", + "0x01" : "0x0a" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json new file mode 100644 index 000000000..9255e33f8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json @@ -0,0 +1,130 @@ +{ + "static_Call1MB1024Calldepth" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffff3286e6a6ff", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "882500000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "nonce" : "0x00", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430637251019", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1130960426", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x0231", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (STATICCALL (- (GAS) 1005000) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0) [[ 2 ]] 1 ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json new file mode 100644 index 000000000..e2d3e4d04 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json @@ -0,0 +1,90 @@ +{ + "static_Call50000" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "86000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffaef00bf", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0510ff40", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "85000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json new file mode 100644 index 000000000..c51a4f70f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json @@ -0,0 +1,76 @@ +{ + "static_Call50000_ecrec" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "95000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffa5e0b5f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05a1f4a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 500 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "94500000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json new file mode 100644 index 000000000..fd1d85c2e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json @@ -0,0 +1,76 @@ +{ + "static_Call50000_identity2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05429690", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json new file mode 100644 index 000000000..645ced581 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json @@ -0,0 +1,76 @@ +{ + "static_Call50000_identity" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "88250000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json new file mode 100644 index 000000000..df8856cd6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json @@ -0,0 +1,78 @@ +{ + "static_Call50000_rip160" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431449195946", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "319015499", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0xc350" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 3 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3925000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json new file mode 100644 index 000000000..60a8fdb33 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json @@ -0,0 +1,81 @@ +{ + "static_Call50000_sha256" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431476195946", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "292015499", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0xc350" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 2 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3925000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json new file mode 100644 index 000000000..630758841 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json @@ -0,0 +1,88 @@ +{ + "static_Call50000bytesContract50_1" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "882500000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json new file mode 100644 index 000000000..29907a5bf --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json @@ -0,0 +1,89 @@ +{ + "static_Call50000bytesContract50_2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "882500000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json new file mode 100644 index 000000000..707cc04e5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json @@ -0,0 +1,88 @@ +{ + "static_Call50000bytesContract50_3" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "882500000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json new file mode 100644 index 000000000..b57cb276e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json @@ -0,0 +1,80 @@ +{ + "static_CallAndCallcodeConsumeMoreGasThenTransactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x08" : "0x00", + "0x09" : "0x00", + "0x0a" : "0x00" + } + }, + "1000000000000000000000000000000000000103" : { + "code" : "0x6012600055", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.", + "code" : "Staticcall goes oog and eats 600k gas", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "storage": { + } + }, + "1000000000000000000000000000000000000103" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be 12 in the post state", + "code" : "{ (SSTORE 0 0x12) } ", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json new file mode 100644 index 000000000..cfd3dec40 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json @@ -0,0 +1,89 @@ +{ + "static_CallAskMoreGasOnDepth2ThenTransactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08d5b6", + "0x09" : "0x00" + } + }, + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "ordinal call should work but on second depth it has call that asks more gas than left", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x1000000000000000000000000000000000000107 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000107" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000108" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be set in the post state", + "code" : "{ (SSTORE 8 (GAS))} ", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json new file mode 100644 index 000000000..c16b00166 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json @@ -0,0 +1,124 @@ +{ + "static_CallContractToCreateContractAndCallItOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 1000 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "203000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json new file mode 100644 index 000000000..4df215de1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json @@ -0,0 +1,124 @@ +{ + "static_CallContractToCreateContractOOGBonusGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "112", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 12 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json new file mode 100644 index 000000000..f3dfa7a71 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallContractToCreateContractOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "0", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json new file mode 100644 index 000000000..eae0cbbb6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json @@ -0,0 +1,133 @@ +{ + "static_CallContractToCreateContractWhichWouldCreateContractIfCalled" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "2", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 50000 (SLOAD 0) 1 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json new file mode 100644 index 000000000..ccc1d53f6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json new file mode 100644 index 000000000..4369d8b00 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover0_0input" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json new file mode 100644 index 000000000..1a9492456 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover0_Gas2999" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json new file mode 100644 index 000000000..f674bab76 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json @@ -0,0 +1,84 @@ +{ + "static_CallEcrecover0_NoGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70216" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71026" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71066" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json new file mode 100644 index 000000000..77b284ff3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json @@ -0,0 +1,61 @@ +{ + "static_CallEcrecover0_completeReturnValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json new file mode 100644 index 000000000..c34a26e1d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0_gas3000" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json new file mode 100644 index 000000000..b8a55364f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0_overlappingInputOutput" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json new file mode 100644 index 000000000..57c9c4159 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json new file mode 100644 index 000000000..69777a439 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json new file mode 100644 index 000000000..4403fa29d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallEcrecover3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json new file mode 100644 index 000000000..d7945388e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover80" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json new file mode 100644 index 000000000..93a97a505 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverCheckLength" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0xa0", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json new file mode 100644 index 000000000..0340cdc8b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverCheckLengthWrongV" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x1122334455667788990011223344556677889900112233445566778899001122", + "0x01" : "0xa0", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json new file mode 100644 index 000000000..adaeb1c88 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverH_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json new file mode 100644 index 000000000..1967fa87a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverR_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json new file mode 100644 index 000000000..7c133de91 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverS_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json new file mode 100644 index 000000000..b9c9d5719 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverV_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json new file mode 100644 index 000000000..64fb1bd1f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json @@ -0,0 +1,105 @@ +{ + "static_CallGoesOOGOnSecondLevel2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "OOG Call transaction has less gas then in example above", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000113 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000113" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000114 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000114" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json new file mode 100644 index 000000000..c1c4080a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json @@ -0,0 +1,106 @@ +{ + "static_CallGoesOOGOnSecondLevel" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "OOG Call because call goes OOG on second level", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000110 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000110" : { + "balance" : "0", + "nonce" : "0", + "code" : "Inner CaLL goes OOG on EIP150", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000111 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000111" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (CREATE 0 0 0) (CREATE 0 0 0) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "220000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json new file mode 100644 index 000000000..18932500e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentitiy_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 4 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json new file mode 100644 index 000000000..a78675055 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallIdentity_1_nonzeroValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000004" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 4 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json new file mode 100644 index 000000000..4cacd8395 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json new file mode 100644 index 000000000..2a955f097 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json new file mode 100644 index 000000000..9988f244a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json new file mode 100644 index 000000000..cba3e65a7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4_gas17" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 17 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json new file mode 100644 index 000000000..ef8f874e1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4_gas18" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 18 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json new file mode 100644 index 000000000..35c6e6aa4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallIdentity_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 4 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json new file mode 100644 index 000000000..75955185e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallLoseGasOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7fffffffffffffff" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json new file mode 100644 index 000000000..1d524a05b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBomb0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x011b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 11000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json new file mode 100644 index 000000000..240f958c7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb0_OOG_atMaxCallDepth" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x02c1", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (STATICCALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json new file mode 100644 index 000000000..b6911f4d9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "20622100" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json new file mode 100644 index 000000000..5e62952e4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "20622099" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json new file mode 100644 index 000000000..4c058cf4a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json @@ -0,0 +1,75 @@ +{ + "static_CallRecursiveBomb3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x08", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json new file mode 100644 index 000000000..88bb7ebe2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBombLog2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json new file mode 100644 index 000000000..2e71fb0e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBombLog" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json new file mode 100644 index 000000000..f9363a751 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallRecursiveBombPreCall2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (STATICCALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json new file mode 100644 index 000000000..47c006979 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json @@ -0,0 +1,102 @@ +{ + "static_CallRecursiveBombPreCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x03ff", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json new file mode 100644 index 000000000..a1ea7b7f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json new file mode 100644 index 000000000..2398a9e5e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json new file mode 100644 index 000000000..ca693e8f3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json new file mode 100644 index 000000000..4569fdbf9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3_postfixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json new file mode 100644 index 000000000..1efae3d19 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json new file mode 100644 index 000000000..43ddff295 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json new file mode 100644 index 000000000..1b6fe0b68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallRipemd160_4_gas719" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json new file mode 100644 index 000000000..00a426ae2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallRipemd160_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json new file mode 100644 index 000000000..fc2835a96 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json new file mode 100644 index 000000000..972831d81 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallSha256_1_nonzeroValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000002" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json new file mode 100644 index 000000000..537742d43 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json new file mode 100644 index 000000000..bbfeb4f0f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json new file mode 100644 index 000000000..b6069d283 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3_postfix0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json new file mode 100644 index 000000000..0b5f19f68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3_prefix0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json new file mode 100644 index 000000000..dd39770c1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json new file mode 100644 index 000000000..0df5e39b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_4_gas99" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json new file mode 100644 index 000000000..158feec90 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallSha256_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json new file mode 100644 index 000000000..75e01a3d3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json @@ -0,0 +1,68 @@ +{ + "static_CallToNameRegistrator0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json new file mode 100644 index 000000000..e46c436e3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorAddressTooBigLeft" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json new file mode 100644 index 000000000..6dd4fe67e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json @@ -0,0 +1,68 @@ +{ + "static_CallToNameRegistratorAddressTooBigRight" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json new file mode 100644 index 000000000..5152cc62f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorMemOOGAndInsufficientBalance" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0xffffffffffff 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json new file mode 100644 index 000000000..42ef2c20f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorNotMuchMemory0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json new file mode 100644 index 000000000..85994c211 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorNotMuchMemory1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json new file mode 100644 index 000000000..ddd611c2b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorOutOfGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json new file mode 100644 index 000000000..6e528c503 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json new file mode 100644 index 000000000..e241cb636 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json new file mode 100644 index 000000000..25fa677a1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json new file mode 100644 index 000000000..c836df8a0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorZeorSizeMemExpansion" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json new file mode 100644 index 000000000..f621d4283 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToReturn1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 31 1) [[ 1 ]] @0 }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155602a601f536001601ff3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json new file mode 100644 index 000000000..fe07ae803 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json @@ -0,0 +1,68 @@ +{ + "static_CalltoReturn2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 5000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f2", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json new file mode 100644 index 000000000..f1042c54d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json @@ -0,0 +1,83 @@ +{ + "static_ExecuteCallThatAskForeGasThenTrabsactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 600000 0x1000000000000000000000000000000000000001 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ [[1]] 12 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json new file mode 100644 index 000000000..4f275d409 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json @@ -0,0 +1,67 @@ +{ + "static_InternalCallHittingGasLimit2" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "47766", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "47766" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json new file mode 100644 index 000000000..f097c8d68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json @@ -0,0 +1,67 @@ +{ + "static_InternalCallHittingGasLimit" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "22000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "{ (STATICCALL 5000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "21100" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json new file mode 100644 index 000000000..114b829b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json @@ -0,0 +1,68 @@ +{ + "static_InternalCallHittingGasLimitSuccess" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "220000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x01" : "0x37" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json new file mode 100644 index 000000000..99233eefc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json @@ -0,0 +1,94 @@ +{ + "static_InternlCallStoreClearsOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (STATICCALL 40000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json new file mode 100644 index 000000000..85d7dfff2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json @@ -0,0 +1,84 @@ +{ + "static_InternlCallStoreClearsSucces" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (STATICCALL 100000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json new file mode 100644 index 000000000..ee9372be4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json @@ -0,0 +1,61 @@ +{ + "static_LoopCallsDepthThenRevert2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x03", + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "create in init code on depth = 1024. account should not be created", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1023)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json new file mode 100644 index 000000000..584268c12 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json @@ -0,0 +1,65 @@ +{ + "static_LoopCallsDepthThenRevert3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x01", + "nonce" : "0x02" + }, + "cd6807039caffddbd1c28a749ec91bef15f448e5" : { + "balance" : "0x02", + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "create in init code on depth = 1023. account would be created", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1022)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json new file mode 100644 index 000000000..b5ba25866 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json @@ -0,0 +1,94 @@ +{ + "static_LoopCallsDepthThenRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999990000000" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json new file mode 100644 index 000000000..2e4dd1720 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json @@ -0,0 +1,114 @@ +{ + "static_LoopCallsThenRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Homestead", "Frontier"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (JUMPDEST) [[0]] (- (SLOAD 0) 1) (STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 0 (SLOAD 0))}", + "nonce" : "0", + "storage" : { + "0x00" : "850" + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000", "9000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json new file mode 100644 index 000000000..47f3819ef --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json @@ -0,0 +1,154 @@ +{ + "static_NewGasPriceForCodes" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05e276", + "0x64" : "0x11" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x06441e", + "0x64" : "0x11" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0", + "0x02" : "0", + "0x03" : "0", + "0x04" : "0", + "0x07" : "0", + "0x08" : "0", + "0x0a" : "0", + "0x64" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05f428", + "0x64" : "0x11" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "111", + "code" : "0x1122334455667788991011121314151617181920212223242526272829303132", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 100 0x11) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "Test gasPrice of thise codes after EIP150 transition", + "code" : "{ (SSTORE 1 (EXTCODESIZE 0x1000000000000000000000000000000000000010)) (EXTCODECOPY 0x1000000000000000000000000000000000000010 0 0 20) (SSTORE 2 (MLOAD 0)) (SSTORE 4 (SLOAD 0)) (SSTORE 5 (STATICCALL 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 6 (CALLCODE 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 7 (DELEGATECALL 30000 0x1000000000000000000000000000000000000011 0 0 0 0)) (SSTORE 8 (STATICCALL 30000 0x1000000000000000000000000000000000000013 0 0 0 0 0)) (SSTORE 3 (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)) (SSTORE 10 (GAS)) }", + "storage": { + "0x00" : "0x12" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json new file mode 100644 index 000000000..ecf078139 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json @@ -0,0 +1,88 @@ +{ + "static_NonZeroValue_CALL2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bd5d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json new file mode 100644 index 000000000..2e30f0fdb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json @@ -0,0 +1,113 @@ +{ + "static_NonZeroValue_CALL_ToEmpty" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json new file mode 100644 index 000000000..90ad0abee --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json @@ -0,0 +1,91 @@ +{ + "static_NonZeroValue_CALL_ToNonNonZeroBalance" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085709" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08599d" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json new file mode 100644 index 000000000..143d56246 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json @@ -0,0 +1,123 @@ +{ + "static_NonZeroValue_CALL_ToOneStorageKey" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json new file mode 100644 index 000000000..905297c4f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json @@ -0,0 +1,68 @@ +{ + "static_PostToReturn1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](STATICCALL 30000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 0 ) [[2]] 1 }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x603760005360026000f2", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json new file mode 100644 index 000000000..7cb37c344 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json @@ -0,0 +1,183 @@ +{ + "static_RETURN_Bounds" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01", + "0x09" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7fffffffffffffff" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "1" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json new file mode 100644 index 000000000..73d5c08f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json @@ -0,0 +1,172 @@ +{ + "static_RETURN_BoundsOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "1" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json new file mode 100644 index 000000000..57e5fa043 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06e228" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json new file mode 100644 index 000000000..de8687167 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b28d" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json new file mode 100644 index 000000000..c871aa37c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c889" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json new file mode 100644 index 000000000..d696fd52c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransfer" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069861" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json new file mode 100644 index 000000000..c2c99289d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferMemoryAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c52e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json new file mode 100644 index 000000000..0695ae442 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferMemory" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0694f9" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json new file mode 100644 index 000000000..c4770c381 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallMemoryGasAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06dece" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json new file mode 100644 index 000000000..a2c81f978 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallMemoryGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06af25" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json new file mode 100644 index 000000000..4d1c7bbf4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json @@ -0,0 +1,90 @@ +{ + "static_Return50000 " : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x600161c34f35f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05429690", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (RETURN (CALLDATALOAD 49999) 1) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json new file mode 100644 index 000000000..36fff2e56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json @@ -0,0 +1,90 @@ +{ + "static_Return50000_2 " : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x61c34f356000526001600051f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05429690", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ [ 0 ] (CALLDATALOAD 49999) (RETURN @0 1) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json new file mode 100644 index 000000000..f9474cfc9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json @@ -0,0 +1,68 @@ +{ + "static_ReturnTest2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15", + "0x01" : "0x3f" + } + } + } + } + ], + "pre" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x15)(STATICCALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "250000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json new file mode 100644 index 000000000..d98239273 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json @@ -0,0 +1,67 @@ +{ + "static_ReturnTest" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15" + } + } + } + } + ], + "pre" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(STATICCALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 0x15) (RETURN 31 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json new file mode 100644 index 000000000..f3ef13ce0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json @@ -0,0 +1,106 @@ +{ + "static_RevertDepth2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 150000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (STATICCALL 150000 0xd000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "", + "storage" : { + } + }, + "c000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "d000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (GAS)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "In transaction T to A, A call B call C, then A call D calls C, D fails after calling C.", + "data" : [ + "" + ], + "gasLimit" : [ + "170685" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json new file mode 100644 index 000000000..46189db1a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json @@ -0,0 +1,222 @@ +{ + "static_RevertDepthCreateAddressCollision" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP158"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "55", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "54", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "54", + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : ["Homestead", "Frontier"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "double OOG", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", + "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", + "data" : [ + "000000000000000000000000000000000000000000000000000000000000ea60", + "000000000000000000000000000000000000000000000000000000000001ea60" + ], + "gasLimit" : [ + "110000", "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "3e180b1862f9d158abb5e519a6d8605540c23682", + "value" : [ + "1", "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json new file mode 100644 index 000000000..a0a45db29 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json @@ -0,0 +1,178 @@ +{ + "static_RevertDepthCreateOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP158"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "0" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall / double OOG", + "indexes" : { + "data" : [1, 0], + "gas" : 0, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", + "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", + "data" : [ + "000000000000000000000000000000000000000000000000000000000000ea60", + "000000000000000000000000000000000000000000000000000000000001ea60" + ], + "gasLimit" : [ + "110000", "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "1", "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json new file mode 100644 index 000000000..8e07bc0df --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json @@ -0,0 +1,299 @@ +{ + "static_RevertOpcodeCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "comment" : "OOG", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x01", + "0x02" : "0x0e" + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x0e" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (STATICCALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[4]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b0005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b1005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b2005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "460000", "88000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json new file mode 100644 index 000000000..90f01a82d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json @@ -0,0 +1,116 @@ +{ + "static_RevertOpcodeDirectCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (STATICCALL 60000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "!!! STRANGE: CALL works, but if called from 094... it wont work. even if gas is enough. seems to be OOG.", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "460000", "68000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json new file mode 100644 index 000000000..9dbcdee84 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json @@ -0,0 +1,412 @@ +{ + "static_RevertOpcodeMultipleSubCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : [2], + "value" : [1,0] + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : [1], + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x00", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ac00000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 260000 (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }", + "nonce" : "0", + "storage" : {} + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "simple calls", + "code" : "call -> callA-> revert | callB -> revert | some code * and OOG scenarious", + "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](STATICCALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](CALLCODE 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](CALLCODE 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](DELEGATECALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](DELEGATECALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + }, + "c000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[2]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + }, + "d000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[3]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "000000000000000000000000a000000000000000000000000000000000000000", + "000000000000000000000000a100000000000000000000000000000000000000", + "000000000000000000000000a200000000000000000000000000000000000000", + "000000000000000000000000a300000000000000000000000000000000000000" + ], + "gasLimit" : [ + "800000", "140000", "160000", "50000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ac00000000000000000000000000000000000000", + "value" : [ + "0", "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json new file mode 100644 index 000000000..4bd1f6b65 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json @@ -0,0 +1,157 @@ +{ + "static_RevertOpcodeReturn" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x726576657274206d657373616765" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : [1,2,3,4,5], + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]](STATICCALL 150000 (CALLDATALOAD 0) 0 0 0 0 32) [[2]] (MLOAD 0) }", + "nonce" : "", + "storage" : { + } + }, + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 32) }", + "nonce" : "0", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0xfffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a400000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x0100 0x00) }", + "nonce" : "0", + "storage" : { + } + }, + "a500000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x01 0x00) }", + "nonce" : "0", + "storage" : { + } + }, + "a600000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0xfffffffffffffffffffffffffffff 0x00) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "000000000000000000000000a100000000000000000000000000000000000000", + "000000000000000000000000a200000000000000000000000000000000000000", + "000000000000000000000000a300000000000000000000000000000000000000", + "000000000000000000000000a400000000000000000000000000000000000000", + "000000000000000000000000a500000000000000000000000000000000000000", + "000000000000000000000000a600000000000000000000000000000000000000" + ], + "gasLimit" : [ + "800000", "70000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json new file mode 100644 index 000000000..9386a4766 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json @@ -0,0 +1,135 @@ +{ + "static_RevertPrecompiledTouch" : { + "env" : { + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0" + } + } + } + ], + "pre" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 50000 1 0 0 0 0 0) (STATICCALL 50000 2 0 0 0 0 0) (STATICCALL 50000 3 0 0 0 0 0) (STATICCALL 50000 4 0 0 0 0 0) (STATICCALL 50000 5 0 0 0 0 0) (STATICCALL 50000 6 0 0 0 0 0) (STATICCALL 50000 7 0 0 0 0 0) (STATICCALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "1", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "60000" + ], + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json new file mode 100644 index 000000000..6cfc6c5e5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json @@ -0,0 +1,105 @@ +{ + "static_RevertPrefoundCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "94000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json new file mode 100644 index 000000000..fa7a0ac4d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json @@ -0,0 +1,71 @@ +{ + "static_RevertPrefoundCallOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "63000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json new file mode 100644 index 000000000..c63955789 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json @@ -0,0 +1,101 @@ +{ + "static_RevertPrefoundEmptyCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "94000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json new file mode 100644 index 000000000..3ed5dbbc6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json @@ -0,0 +1,71 @@ +{ + "static_RevertPrefoundEmptyCallOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "63000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json new file mode 100644 index 000000000..f5dac0424 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json @@ -0,0 +1,101 @@ +{ + "static_StoreClearsAndInternlCallStoreClearsOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20", + "storage" : { + "0x04" : "0x0c" + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 20000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json new file mode 100644 index 000000000..9d3a330f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json @@ -0,0 +1,89 @@ +{ + "static_StoreClearsAndInternlCallStoreClearsSuccess" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19", + "storage" : { + "0x04" : "0x0c" + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 50000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json new file mode 100644 index 000000000..726a622de --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json @@ -0,0 +1,91 @@ +{ + "static_SuicideToExistingContract" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "Suicide to existing account", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json new file mode 100644 index 000000000..904aa1f19 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json @@ -0,0 +1,109 @@ +{ + "static_SuicideToNotExistingContract" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x085db0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide to unknown contract on EIP150", + "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000116 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000116" : { + "balance" : "0", + "nonce" : "0", + "code" : "Suicide to not existing account", + "code" : "{ (SELFDESTRUCT 0x2000000000000000000000000000000000000115) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json new file mode 100644 index 000000000..1eb733f3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json @@ -0,0 +1,66 @@ +{ + "static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailed" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "20", + "code" : "0x6001ff" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 0 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json new file mode 100644 index 000000000..c8f980f7a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json @@ -0,0 +1,84 @@ +{ + "static_SuicidesAndInternlCallSuicidesBonusGasAtCall" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json new file mode 100644 index 000000000..cea315bc1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json @@ -0,0 +1,72 @@ +{ + "static_SuicidesAndInternlCallSuicidesOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "0x6001ff" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 22000 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json new file mode 100644 index 000000000..a9dc7b5cf --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json @@ -0,0 +1,82 @@ +{ + "static_SuicidesAndInternlCallSuicidesSuccess" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "180000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{(STATICCALL (CALLDATALOAD 0) 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000055f0", "0x000000000000000000000000000000000000000000000000000000000000aaf0" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json new file mode 100644 index 000000000..2f4f714b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json @@ -0,0 +1,73 @@ +{ + "static_SuicidesStopAfterSuicide" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "code" : "0x6001ff", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1110", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "122000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000", + "code" : "{(SELFDESTRUCT 0) (STATICCALL 30000 0x0000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "83700" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json new file mode 100644 index 000000000..b902b60e0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json @@ -0,0 +1,77 @@ +{ + "static_TouchToEmptyAccountRevert2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[2]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[3]] 1 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "77400" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json new file mode 100644 index 000000000..2be6fe5b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json @@ -0,0 +1,91 @@ +{ + "static_TouchToEmptyAccountRevert3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[2]](STATICCALL 30000 0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[3]] 1 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "storage": { + } + }, + "e94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "82400", "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json new file mode 100644 index 000000000..c90aaaf3f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json @@ -0,0 +1,77 @@ +{ + "static_TouchToEmptyAccountRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 1 }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "70000", "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json new file mode 100644 index 000000000..c9246cb52 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json @@ -0,0 +1,75 @@ +{ + "static_Transaction64Rule_d64e0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f34", + "0x02" : "0xe3df" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160062" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json new file mode 100644 index 000000000..ebaecfe78 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json @@ -0,0 +1,96 @@ +{ + "static_Transaction64Rule_d64m1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f33", + "0x02" : "0x018015" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x02" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) (STATICCALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160061" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json new file mode 100644 index 000000000..56231773b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json @@ -0,0 +1,76 @@ +{ + "static_Transaction64Rule_d64p1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f35", + "0x01" : "0x00", + "0x02" : "0xd057" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) [[1]](STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160063" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json new file mode 100644 index 000000000..1405535ea --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json @@ -0,0 +1,67 @@ +{ + "static_ZeroValue_CALL2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json new file mode 100644 index 000000000..711702a56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json @@ -0,0 +1,69 @@ +{ + "static_ZeroValue_CALL_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json new file mode 100644 index 000000000..b1c983b02 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json @@ -0,0 +1,74 @@ +{ + "static_ZeroValue_CALL_ToEmpty2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json new file mode 100644 index 000000000..c10db9c3c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json @@ -0,0 +1,76 @@ +{ + "static_ZeroValue_CALL_ToEmpty_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json new file mode 100644 index 000000000..b77d0cfda --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json @@ -0,0 +1,74 @@ +{ + "static_ZeroValue_CALL_ToNonZeroBalance2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json new file mode 100644 index 000000000..1d9e26aa3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json @@ -0,0 +1,76 @@ +{ + "static_ZeroValue_CALL_ToNonZeroBalance_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json new file mode 100644 index 000000000..c88b1bb8e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json @@ -0,0 +1,95 @@ +{ + "static_ZeroValue_CALL_ToOneStorageKey2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x6fffffffffffade6", + "0x01" : "0x01", + "0x64" : "0x6fffffffffff0ed0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000", "0x6ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json new file mode 100644 index 000000000..9dd6f18c9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json @@ -0,0 +1,77 @@ +{ + "static_ZeroValue_CALL_ToOneStorageKey_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json new file mode 100644 index 000000000..7542568e9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json @@ -0,0 +1,72 @@ +{ + "static_ZeroValue_SELFDESTRUCT_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 40000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json new file mode 100644 index 000000000..ca4053a79 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json @@ -0,0 +1,79 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToEmpty_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json new file mode 100644 index 000000000..b43357ab1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json @@ -0,0 +1,79 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToNonZeroBalance_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json new file mode 100644 index 000000000..3d7aee123 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json @@ -0,0 +1,82 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToOneStorageKey_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + "0x00" : "0x01" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + "0x00" : "0x01" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "", + "storage": { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json new file mode 100644 index 000000000..10caab2e8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json new file mode 100644 index 000000000..0a3a965be --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json new file mode 100644 index 000000000..da198b243 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3Fail" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x016001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json new file mode 100644 index 000000000..da6adbe0d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json new file mode 100644 index 000000000..dd9d4fd97 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3partialFail" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x016001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json new file mode 100644 index 000000000..c973f8b04 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3partial" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json new file mode 100644 index 000000000..840350c7c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json @@ -0,0 +1,62 @@ +{ + "static_callWithHighValueAndGasOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100000000000000000000 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json new file mode 100644 index 000000000..b7183b50b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json @@ -0,0 +1,78 @@ +{ + "static_callWithHighValueAndOOGatTxLevel" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "3000000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "33424" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (STATICCALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100001 0 0 0 0 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json new file mode 100644 index 000000000..adb79686e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json @@ -0,0 +1,62 @@ +{ + "static_callWithHighValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000000000000000001 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json new file mode 100644 index 000000000..60cc81e44 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json @@ -0,0 +1,86 @@ +{ + "static_callWithHighValueOOGinCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763155a" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999939270" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (ADD (STATICCALL 10000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0 ) 1) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json new file mode 100644 index 000000000..802ffb154 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json @@ -0,0 +1,73 @@ +{ + "static_call_OOG_additionalGasCosts1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150"], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999970000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21727" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999978273" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json new file mode 100644 index 000000000..8ab951dec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json @@ -0,0 +1,65 @@ +{ + "static_call_OOG_additionalGasCosts2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x7530" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7638ad0" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json new file mode 100644 index 000000000..79a7e5466 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json @@ -0,0 +1,77 @@ +{ + "static_callcall_00" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json new file mode 100644 index 000000000..1faf5e147 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json @@ -0,0 +1,83 @@ +{ + "static_callcall_00_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json new file mode 100644 index 000000000..63077270b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json @@ -0,0 +1,72 @@ +{ + "static_callcall_00_OOGE_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "180066" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json new file mode 100644 index 000000000..05df50c69 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json @@ -0,0 +1,72 @@ +{ + "static_callcall_00_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "150066" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json new file mode 100644 index 000000000..3d1ab43d0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json @@ -0,0 +1,74 @@ +{ + "static_callcall_00_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json new file mode 100644 index 000000000..5496dbc2b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcallcall_000" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json new file mode 100644 index 000000000..0ae9303db --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json @@ -0,0 +1,98 @@ +{ + "static_callcallcall_000_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json new file mode 100644 index 000000000..d67bd0a0b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json @@ -0,0 +1,130 @@ +{ + "static_callcallcall_000_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json new file mode 100644 index 000000000..cfee3edbd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json @@ -0,0 +1,135 @@ +{ + "static_callcallcall_000_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json new file mode 100644 index 000000000..5cb24c51d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json @@ -0,0 +1,98 @@ +{ + "static_callcallcall_000_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json new file mode 100644 index 000000000..584ced914 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json @@ -0,0 +1,81 @@ +{ + "static_callcallcall_000_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json new file mode 100644 index 000000000..2598985c5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json @@ -0,0 +1,84 @@ +{ + "static_callcallcall_000_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..a97faf42a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,113 @@ +{ + "static_callcallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json new file mode 100644 index 000000000..fdefdd548 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json @@ -0,0 +1,156 @@ +{ + "static_callcallcallcode_001" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json new file mode 100644 index 000000000..65e7f830f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcallcallcode_001_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json new file mode 100644 index 000000000..4afddbfc7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json @@ -0,0 +1,146 @@ +{ + "static_callcallcallcode_001_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json new file mode 100644 index 000000000..22355f9f8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcallcallcode_001_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json new file mode 100644 index 000000000..4286be7d4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json @@ -0,0 +1,130 @@ +{ + "static_callcallcallcode_001_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json new file mode 100644 index 000000000..1da3444ab --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json @@ -0,0 +1,154 @@ +{ + "static_callcallcallcode_001_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json new file mode 100644 index 000000000..588eb8d67 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json @@ -0,0 +1,151 @@ +{ + "static_callcallcallcode_001_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Frontier"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json new file mode 100644 index 000000000..5da343ed7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json @@ -0,0 +1,135 @@ +{ + "static_callcallcallcode_001_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json new file mode 100644 index 000000000..79dde9803 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcallcode_001_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json new file mode 100644 index 000000000..9b50a5bf4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcallcode_001_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json new file mode 100644 index 000000000..c8d696990 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json @@ -0,0 +1,81 @@ +{ + "static_callcallcallcode_001_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json new file mode 100644 index 000000000..5811a22a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json @@ -0,0 +1,137 @@ +{ + "static_callcallcallcode_001_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json new file mode 100644 index 000000000..25cff1963 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcallcallcode_001_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json new file mode 100644 index 000000000..1241c4371 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json @@ -0,0 +1,138 @@ +{ + "static_callcallcallcode_001_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..78fb7f899 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcallcallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..2f7e2d679 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,152 @@ +{ + "static_callcallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "1046140" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json new file mode 100644 index 000000000..19f420fab --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json @@ -0,0 +1,125 @@ +{ + "static_callcallcode_01" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000001", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json new file mode 100644 index 000000000..c8a2c4c68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json @@ -0,0 +1,78 @@ +{ + "static_callcallcode_01_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000001", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json new file mode 100644 index 000000000..cef0a41b0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json @@ -0,0 +1,115 @@ +{ + "static_callcallcode_01_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json new file mode 100644 index 000000000..45ae415bd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json @@ -0,0 +1,83 @@ +{ + "static_callcallcode_01_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json new file mode 100644 index 000000000..1089c3bc4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json @@ -0,0 +1,74 @@ +{ + "static_callcallcode_01_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json new file mode 100644 index 000000000..7935d506d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json @@ -0,0 +1,122 @@ +{ + "static_callcallcode_01_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json new file mode 100644 index 000000000..343491c28 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json @@ -0,0 +1,146 @@ +{ + "static_callcallcodecall_010" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x05" : "0x1000000000000000000000000000000000000000" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json new file mode 100644 index 000000000..86a3cb7c3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json @@ -0,0 +1,90 @@ +{ + "static_callcallcodecall_010_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json new file mode 100644 index 000000000..3a91f8691 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json @@ -0,0 +1,146 @@ +{ + "static_callcallcodecall_010_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json new file mode 100644 index 000000000..d72e709b5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcallcodecall_010_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json new file mode 100644 index 000000000..4d2618870 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json @@ -0,0 +1,136 @@ +{ + "static_callcallcodecall_010_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json new file mode 100644 index 000000000..1dbe57534 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcodecall_010_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json new file mode 100644 index 000000000..f18f44bb7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcallcodecall_010_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json new file mode 100644 index 000000000..1d3c690cd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json @@ -0,0 +1,141 @@ +{ + "static_callcallcodecall_010_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json new file mode 100644 index 000000000..ac0e6f61c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcallcodecall_010_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json new file mode 100644 index 000000000..fc0d0c4c5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcodecall_010_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json new file mode 100644 index 000000000..6a2f0983b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcallcodecall_010_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json new file mode 100644 index 000000000..3b9e831fd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcallcodecall_010_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json new file mode 100644 index 000000000..f7c9d03c1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcallcodecall_010_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json new file mode 100644 index 000000000..76a5f0be8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json @@ -0,0 +1,129 @@ +{ + "static_callcallcodecall_010_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..b5b1b36ed --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..278165537 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,152 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json new file mode 100644 index 000000000..ced3553c4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json @@ -0,0 +1,130 @@ +{ + "static_callcallcodecallcode_011" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000001", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json new file mode 100644 index 000000000..d6446935e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcodecallcode_011_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000001", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json new file mode 100644 index 000000000..577492d8d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json @@ -0,0 +1,146 @@ +{ + "static_callcallcodecallcode_011_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json new file mode 100644 index 000000000..1c9bda4de --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcallcodecallcode_011_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json new file mode 100644 index 000000000..b35d1be36 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json @@ -0,0 +1,130 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json new file mode 100644 index 000000000..17b85a4c0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json new file mode 100644 index 000000000..a64fb2285 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json new file mode 100644 index 000000000..109f0f3dc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json @@ -0,0 +1,137 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json new file mode 100644 index 000000000..c07610a26 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json new file mode 100644 index 000000000..fc519188d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcodecallcode_011_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json new file mode 100644 index 000000000..fd5af0f97 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json @@ -0,0 +1,80 @@ +{ + "static_callcallcodecallcode_011_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json new file mode 100644 index 000000000..64a5a5dce --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json @@ -0,0 +1,135 @@ +{ + "static_callcallcodecallcode_011_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json new file mode 100644 index 000000000..75ea9fc86 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json @@ -0,0 +1,94 @@ +{ + "static_callcallcodecallcode_011_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json new file mode 100644 index 000000000..44ec8f86e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json @@ -0,0 +1,112 @@ +{ + "static_callcallcodecallcode_011_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..530e2b912 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcallcodecallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..f159eb182 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,152 @@ +{ + "static_callcallcodecallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json new file mode 100644 index 000000000..9e0049e1f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json @@ -0,0 +1,61 @@ +{ + "static_callcode_checkPC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x03" : "0x25" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[3]] (PC)}", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json new file mode 100644 index 000000000..3f16f0494 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json @@ -0,0 +1,115 @@ +{ + "static_callcodecall_10" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json new file mode 100644 index 000000000..b6e80bd9f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json @@ -0,0 +1,83 @@ +{ + "static_callcodecall_10_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json new file mode 100644 index 000000000..07a128805 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json @@ -0,0 +1,123 @@ +{ + "static_callcodecall_10_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json new file mode 100644 index 000000000..10738e848 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcodecall_10_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json new file mode 100644 index 000000000..6458255d3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json @@ -0,0 +1,78 @@ +{ + "static_callcodecall_10_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json new file mode 100644 index 000000000..b8e44ecf8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json @@ -0,0 +1,108 @@ +{ + "static_callcodecall_10_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json new file mode 100644 index 000000000..7df498568 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json @@ -0,0 +1,134 @@ +{ + "static_callcodecallcall_100" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x02" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json new file mode 100644 index 000000000..3ed37f54e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json @@ -0,0 +1,95 @@ +{ + "static_callcodecallcall_100_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json new file mode 100644 index 000000000..34813f3b0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcodecallcall_100_OOGE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json new file mode 100644 index 000000000..9b0aef21c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json @@ -0,0 +1,148 @@ +{ + "static_callcodecallcall_100_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json new file mode 100644 index 000000000..230782133 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json @@ -0,0 +1,132 @@ +{ + "static_callcodecallcall_100_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json new file mode 100644 index 000000000..95dfa9a21 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcall_100_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json new file mode 100644 index 000000000..ee5e3865e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcall_100_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json new file mode 100644 index 000000000..7d8fc6515 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json @@ -0,0 +1,133 @@ +{ + "static_callcodecallcall_100_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json new file mode 100644 index 000000000..8680d711f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json @@ -0,0 +1,104 @@ +{ + "static_callcodecallcall_100_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json new file mode 100644 index 000000000..2b6c46614 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcall_100_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json new file mode 100644 index 000000000..aa494d02b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcall_100_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json new file mode 100644 index 000000000..d992a2411 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json @@ -0,0 +1,139 @@ +{ + "static_callcodecallcall_100_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json new file mode 100644 index 000000000..d11663f35 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcodecallcall_100_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json new file mode 100644 index 000000000..2473dd1d9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcall_100_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..e263cc347 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..ff9c7301c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json new file mode 100644 index 000000000..019dac9e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json @@ -0,0 +1,152 @@ +{ + "static_callcodecallcallcode_101" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x06" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 6 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json new file mode 100644 index 000000000..b2456997f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcallcode_101_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json new file mode 100644 index 000000000..393b3aade --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json @@ -0,0 +1,148 @@ +{ + "static_callcodecallcallcode_101_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json new file mode 100644 index 000000000..9f8373f90 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcodecallcallcode_101_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json new file mode 100644 index 000000000..d23557ff2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json @@ -0,0 +1,136 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json new file mode 100644 index 000000000..7b5f65d33 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json new file mode 100644 index 000000000..5c1e06d7b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json @@ -0,0 +1,131 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json new file mode 100644 index 000000000..3c4a6f8c3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json new file mode 100644 index 000000000..efe8e42af --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcodecallcallcode_101_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json new file mode 100644 index 000000000..674790bc6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcallcode_101_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json new file mode 100644 index 000000000..d0ff145e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcodecallcallcode_101_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json new file mode 100644 index 000000000..0c50d3d14 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json @@ -0,0 +1,143 @@ +{ + "static_callcodecallcallcode_101_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json new file mode 100644 index 000000000..8d7f6d752 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json @@ -0,0 +1,93 @@ +{ + "static_callcodecallcallcode_101_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json new file mode 100644 index 000000000..189251e6d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcallcode_101_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..ce38014a0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..5186812fe --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json new file mode 100644 index 000000000..1399d3285 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcodecall_110_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json new file mode 100644 index 000000000..46ad433f3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json @@ -0,0 +1,140 @@ +{ + "static_callcodecallcodecall_110" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (SSTORE 6 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json new file mode 100644 index 000000000..1399d3285 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcodecall_110_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json new file mode 100644 index 000000000..4a2e3ee64 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json @@ -0,0 +1,100 @@ +{ + "static_callcodecallcodecall_110_OOGE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json new file mode 100644 index 000000000..9773cacdc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json new file mode 100644 index 000000000..47dae0f3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json @@ -0,0 +1,136 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json new file mode 100644 index 000000000..148b58226 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json new file mode 100644 index 000000000..6c89d2003 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json new file mode 100644 index 000000000..529c7676c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json @@ -0,0 +1,141 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json new file mode 100644 index 000000000..e6f15b515 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json @@ -0,0 +1,102 @@ +{ + "static_callcodecallcodecall_110_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json new file mode 100644 index 000000000..23bc61841 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json new file mode 100644 index 000000000..58d2e2ca0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json @@ -0,0 +1,81 @@ +{ + "static_callcodecallcodecall_110_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json new file mode 100644 index 000000000..9fe15f353 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json @@ -0,0 +1,125 @@ +{ + "static_callcodecallcodecall_110_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json new file mode 100644 index 000000000..286ab5978 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json @@ -0,0 +1,92 @@ +{ + "static_callcodecallcodecall_110_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json new file mode 100644 index 000000000..bc515c703 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcodecall_110_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..cdf0503f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..5a739a451 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json new file mode 100644 index 000000000..aafe3d123 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json @@ -0,0 +1,133 @@ +{ + "static_callcodecallcodecallcode_111_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 1 0 64 0 64) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json new file mode 100644 index 000000000..894cc2332 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json @@ -0,0 +1,89 @@ +{ + "static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Frontier"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "balance" : "0" + }, + "1000000000000000000000000000000000000001": { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001": { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" + ], + "gasLimit" : [ + "96000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json new file mode 100644 index 000000000..09ff782f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json @@ -0,0 +1,69 @@ +{ + "static_contractCreationOOGdontLeaveEmptyContractViaTransaction" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, + "network" : ["Frontier", "EIP158", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" + ], + "gasLimit" : [ + "96000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json new file mode 100644 index 000000000..87fe60505 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json new file mode 100644 index 000000000..6f747db13 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log0_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..69fc069bb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log0_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json new file mode 100644 index 000000000..34433b73e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json new file mode 100644 index 000000000..ccf88cb35 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..c3dd8246f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "2100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..e6ff51410 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json new file mode 100644 index 000000000..1acb969f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json new file mode 100644 index 000000000..feb23c0df --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json new file mode 100644 index 000000000..0e8db864c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json new file mode 100644 index 000000000..da3cb4ccd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log1_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..58a016e57 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log1_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json new file mode 100644 index 000000000..e478e8201 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json new file mode 100644 index 000000000..fe0353ff5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..9996f6d6e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..9f3cdd9c4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json new file mode 100644 index 000000000..108f13407 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json new file mode 100644 index 000000000..ad2cf521b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json new file mode 100644 index 000000000..a4b2557ea --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG2 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json new file mode 100644 index 000000000..205ca9cbb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log2_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..cdd02eaa3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log2_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json new file mode 100644 index 000000000..13cfe0ae7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json new file mode 100644 index 000000000..798859cec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..9030fec0a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..615149e78 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json new file mode 100644 index 000000000..c3a056e95 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json new file mode 100644 index 000000000..d2bdeae9a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json new file mode 100644 index 000000000..adb36977a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_PC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json new file mode 100644 index 000000000..945ff9f22 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG3 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json new file mode 100644 index 000000000..315a4d30a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log3_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..24b64c0a8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log3_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json new file mode 100644 index 000000000..2ac8451d1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json new file mode 100644 index 000000000..d14c0efb1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..6d98bd14d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..e3edb402e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json new file mode 100644 index 000000000..8db8f9ba0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json new file mode 100644 index 000000000..2e8f47925 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json new file mode 100644 index 000000000..e5a7d3a56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_PC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 (PC) (PC) (PC) (PC) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json new file mode 100644 index 000000000..acca8a112 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG4 0 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json new file mode 100644 index 000000000..3eeb7f647 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log4_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..86e1930ed --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log4_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json new file mode 100644 index 000000000..da17539b4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json new file mode 100644 index 000000000..0c4432ffd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..87d44cdde --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..2ab96ee07 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json new file mode 100644 index 000000000..0f2667d87 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json @@ -0,0 +1,67 @@ +{ + "static_logInOOG_Call" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 32) (MLOAD 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json new file mode 100644 index 000000000..badb2b3d4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json @@ -0,0 +1,82 @@ +{ + "static_makeMoney" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "771500" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "999999999999999987" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "931546" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000023" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (STATICCALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x600160015532600255", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "228500" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json new file mode 100644 index 000000000..b49ee2d14 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json @@ -0,0 +1,110 @@ +{ + "static_refundSuicide50procentCap" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x984376", + "0x17" : "0x96bc55" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70695" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9929305", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x9843b6", + "0x17" : "0x96a679" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "73493" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9926507", + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 22 ]] (GAS) [[ 10 ]] 1 [[ 11 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 [[ 7 ]] 0 [[ 8 ]] 0 [[ 23 ]] (GAS) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json new file mode 100644 index 000000000..177f4bf6a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json @@ -0,0 +1,110 @@ +{ + "static_refund_CallA" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31070" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968920", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31730" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968260", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 5500 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json new file mode 100644 index 000000000..23600668a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json @@ -0,0 +1,82 @@ +{ + "static_refund_CallA_OOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "268931", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 6000 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "300000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "31069" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json new file mode 100644 index 000000000..5c3a93498 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json @@ -0,0 +1,110 @@ +{ + "static_refund_CallA_notEnoughGasInCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68921", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31729" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68261", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 5005 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "85000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json new file mode 100644 index 000000000..99b7ec811 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json @@ -0,0 +1,101 @@ +{ + "static_refund_CallToSuicideNoStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json new file mode 100644 index 000000000..6351fceec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json @@ -0,0 +1,105 @@ +{ + "static_refund_CallToSuicideStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json new file mode 100644 index 000000000..6948922cb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json @@ -0,0 +1,108 @@ +{ + "static_refund_CallToSuicideTwice" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20697" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979293", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "28649" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99971341", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} -- cgit From 9689408c3933c99612910aad6c85cd37addb2afd Mon Sep 17 00:00:00 2001 From: Dimitry Date: Tue, 16 May 2017 12:10:58 +0300 Subject: update static call fillers --- .../stStaticCall/static_ABAcalls0Filler.json | 64 ++++++++++++- .../stStaticCall/static_ABAcalls1Filler.json | 62 ++++++++++++- .../stStaticCall/static_ABAcalls2Filler.json | 62 ++++++++++++- .../stStaticCall/static_ABAcalls3Filler.json | 64 ++++++++++++- .../static_ABAcallsSuicide0Filler.json | 57 +++++++++++- .../static_ABAcallsSuicide1Filler.json | 4 +- .../static_Call1024BalanceTooLow2Filler.json | 49 +++++++++- .../stStaticCall/static_Call10Filler.json | 51 +++++++++- .../static_Call1MB1024CalldepthFiller.json | 103 +++++++++------------ .../stStaticCall/static_callcall_00Filler.json | 7 +- .../static_callcall_00_OOGEFiller.json | 6 +- .../static_callcall_00_OOGE_1Filler.json | 7 +- .../static_callcall_00_OOGE_2Filler.json | 7 +- .../static_callcall_00_SuicideEndFiller.json | 7 +- .../static_callcallcall_000Filler.json | 19 +++- .../static_callcallcall_000_OOGEFiller.json | 10 +- .../static_callcallcall_000_OOGMAfter2Filler.json | 45 ++------- .../static_callcallcall_000_OOGMAfterFiller.json | 44 +-------- .../static_callcallcall_000_OOGMBeforeFiller.json | 8 +- .../static_callcallcall_000_SuicideEndFiller.json | 10 +- ...tatic_callcallcall_000_SuicideMiddleFiller.json | 12 +-- .../static_callcallcall_ABCB_RECURSIVEFiller.json | 39 ++------ .../static_callcallcallcode_001Filler.json | 53 +---------- .../static_callcallcallcode_001_2Filler.json | 29 +++--- .../static_callcallcallcode_001_OOGEFiller.json | 48 +--------- .../static_callcallcallcode_001_OOGE_2Filler.json | 10 +- ...atic_callcallcallcode_001_OOGMAfter2Filler.json | 44 ++------- ...tatic_callcallcallcode_001_OOGMAfterFiller.json | 50 +--------- ...tic_callcallcallcode_001_OOGMAfter_2Filler.json | 54 +---------- ...tic_callcallcallcode_001_OOGMAfter_3Filler.json | 46 +-------- ...tic_callcallcallcode_001_OOGMBefore2Filler.json | 6 +- ...atic_callcallcallcode_001_OOGMBeforeFiller.json | 50 +--------- ...tic_callcallcallcode_001_SuicideEnd2Filler.json | 6 +- ...atic_callcallcallcode_001_SuicideEndFiller.json | 45 +-------- ..._callcallcallcode_001_SuicideMiddle2Filler.json | 8 +- ...c_callcallcallcode_001_SuicideMiddleFiller.json | 48 ++-------- ...tic_callcallcallcode_ABCB_RECURSIVE2Filler.json | 39 ++------ ...atic_callcallcallcode_ABCB_RECURSIVEFiller.json | 72 +------------- .../stStaticCall/static_callcallcode_01Filler.json | 37 +------- .../static_callcallcode_01_2Filler.json | 20 ++-- .../static_callcallcode_01_OOGEFiller.json | 32 +------ .../static_callcallcode_01_OOGE_2Filler.json | 4 +- .../static_callcallcode_01_SuicideEnd2Filler.json | 4 +- .../static_callcallcode_01_SuicideEndFiller.json | 37 +------- .../static_callcallcodecall_010Filler.json | 46 +-------- .../static_callcallcodecall_010_2Filler.json | 24 ++--- .../static_callcallcodecall_010_OOGEFiller.json | 46 +-------- .../static_callcallcodecall_010_OOGE_2Filler.json | 8 +- ...atic_callcallcodecall_010_OOGMAfter2Filler.json | 43 +-------- ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 48 +--------- ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 48 +--------- ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 47 +--------- ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 6 +- ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 48 +--------- ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 6 +- ...atic_callcallcodecall_010_SuicideEndFiller.json | 38 +------- ..._callcallcodecall_010_SuicideMiddle2Filler.json | 8 +- ...c_callcallcodecall_010_SuicideMiddleFiller.json | 38 +------- ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 39 ++------ ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 70 +------------- .../static_callcallcodecallcode_011Filler.json | 36 +------ .../static_callcallcodecallcode_011_2Filler.json | 22 ++--- ...static_callcallcodecallcode_011_OOGEFiller.json | 44 +-------- ...atic_callcallcodecallcode_011_OOGE_2Filler.json | 6 +- ..._callcallcodecallcode_011_OOGMAfter2Filler.json | 38 +------- ...c_callcallcodecallcode_011_OOGMAfterFiller.json | 46 +-------- ...callcallcodecallcode_011_OOGMAfter_1Filler.json | 46 +-------- ...callcallcodecallcode_011_OOGMAfter_2Filler.json | 43 +-------- ...callcallcodecallcode_011_OOGMBefore2Filler.json | 4 +- 69 files changed, 708 insertions(+), 1619 deletions(-) (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json index c62a70411..b3577feba 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json @@ -11,13 +11,14 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", "storage" : { "0x24" : "0x00" } @@ -26,11 +27,51 @@ "storage" : { "0x26" : "0x00" } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0ce29d" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "storage" : { + "0x24" : "0x00" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0df479" + } } } } ], "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", @@ -45,6 +86,20 @@ "storage" : { } }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE 1 (PC)) (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -55,7 +110,8 @@ }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ "1000000" @@ -63,7 +119,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "to" : "1000000000000000000000000000000000000000", "value" : [ "100000" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json index 00f4999c4..247233357 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json @@ -11,12 +11,44 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8b81b" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b957609" + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "storage" : { "0x26" : "0x00" @@ -31,6 +63,13 @@ } ], "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", "code" : "{ [[ (PC) ]] (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", @@ -45,6 +84,20 @@ "storage" : { } }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE (PC) (ADD 1 (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -55,7 +108,8 @@ }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ "1000000000" @@ -63,7 +117,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "to" : "1000000000000000000000000000000000000000", "value" : [ "100000" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json index b5743d180..cda5a1a6e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json @@ -31,16 +31,48 @@ }, { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158", "Metropolis"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8c976" + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "storage" : { "0x" : "0" } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b955b28" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "storage" : { @@ -51,6 +83,13 @@ } ], "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", @@ -65,6 +104,20 @@ "storage" : { } }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -75,7 +128,8 @@ }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ "1000000000" @@ -83,7 +137,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "to" : "1000000000000000000000000000000000000000", "value" : [ "100000" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json index 8be1e8fc6..ee91e7ea7 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json @@ -31,15 +31,21 @@ }, { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158", "Metropolis"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0467fd" + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "storage" : { - "0x" : "0" + "0x" : "0x01" } }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { @@ -48,9 +54,42 @@ } } } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x95c35c" + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } } ], "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1025000", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", @@ -65,6 +104,20 @@ "storage" : { } }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -75,7 +128,8 @@ }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ "10000000" @@ -83,7 +137,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "to" : "1000000000000000000000000000000000000000", "value" : [ "100000" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json index 770f12fa8..72931d652 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json @@ -11,12 +11,39 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x962352" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x96f73c" + } + }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "storage" : { "0x26" : "0" @@ -26,6 +53,13 @@ } ], "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", @@ -40,6 +74,20 @@ "storage" : { } }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE (PC) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0)) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE (PC) (ADD 1 (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -50,7 +98,8 @@ }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ "10000000" @@ -58,7 +107,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "to" : "1000000000000000000000000000000000000000", "value" : [ "100000" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json index d37949408..9327c6e1e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json @@ -38,14 +38,14 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0) }", "nonce" : "0", "storage" : { } }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "23", - "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (ADD 1 (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0)) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json index 169cb2aca..7aff2173a 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : [ "Metropolis" ], "result" : { "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { @@ -18,7 +18,31 @@ "0x00" : "0x01", "0x01" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : [ "Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1000001848dd" + } + } } } ], @@ -37,25 +61,40 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1024", "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "17592186099592" + "0x10000000d788" ], "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json index 74d2ba4a5..d8aaead40 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -22,7 +22,35 @@ "0x00" : "1", "0x01" : "0x0a" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffdadb4" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffef99b" + } + } } } ], @@ -41,17 +69,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000", "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) (MSTORE 0 (STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i)}", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "0x7ffffffffffffff0" @@ -59,7 +102,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json index 9255e33f8..fb3d7110b 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json @@ -9,82 +9,56 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { + { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffff3286e6a6ff", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "882500000000", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", "nonce" : "0x00", "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" } - } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374606576630825020" + } } }, { "indexes" : { - "data" : -1, + "data" : 1, "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158", "Metropolis"], + "network" : ["Metropolis"], "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607430637251019", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1130960426", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "4503599627370505", - "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", "nonce" : "0x00", "storage" : { - "0x00" : "0x0231", - "0x01" : "0x01" + "0x00" : "0x00", + "0x01" : "0x00" } - } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430644755785" + } } } ], @@ -103,17 +77,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0xfffffffffffff", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (STATICCALL (- (GAS) 1005000) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0) [[ 2 ]] 1 ) }", "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (MSTORE 0 (+ (MLOAD 0) 1)) (if (LT (MLOAD 0) 1024) (MSTORE 32 (STATICCALL (- (GAS) 1005000) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0)) (MSTORE 64 1) ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "882500000000" @@ -121,7 +110,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json index 79a7e5466..598bb5ed7 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json @@ -13,6 +13,11 @@ "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, "1000000000000000000000000000000000000002" : { "storage" : { "0x02" : "0x00", @@ -38,7 +43,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json index 1faf5e147..4ddea4cbc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json @@ -11,11 +11,11 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", + "0x00" : "0x01", "0x01" : "0x00", "0x02" : "0x00" } @@ -44,7 +44,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json index 63077270b..b858d8427 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json @@ -17,6 +17,11 @@ }, "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, "1000000000000000000000000000000000000002" : { "storage" : { "0x02" : "0x00", @@ -35,7 +40,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json index 05df50c69..9522c04ba 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json @@ -22,6 +22,11 @@ "0x02" : "0x00", "0x05" : "0x00" } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } } @@ -35,7 +40,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json index 3d1ab43d0..aad89b7b3 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json @@ -14,7 +14,10 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000" + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", @@ -35,7 +38,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json index 5496dbc2b..84f3a3a5c 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json @@ -11,8 +11,21 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + } + }, "1000000000000000000000000000000000000003" : { "storage" : { "0x014a" : "0x00", @@ -38,14 +51,14 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json index 0ae9303db..ee72783fc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -23,7 +23,7 @@ }, "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" } @@ -45,21 +45,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json index d67bd0a0b..ebb876f2e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json @@ -9,48 +9,17 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", - "0x03" : "0x00" + "0x03" : "0x00", + "0x6f" : "0x015cb7" } }, "1000000000000000000000000000000000000001" : { @@ -77,21 +46,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 56000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "code" : "{ (STATICCALL 45000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json index cfee3edbd..10ca3459e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json @@ -15,43 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -86,19 +50,19 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json index 5cb24c51d..9f4ac28c4 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -45,21 +45,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json index 584ced914..f227ce048 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json @@ -14,12 +14,12 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000001" : { - "balance" : "20000000000" + "balance" : "10000000000" }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", "storage" : { - "0x03" : "0x01" + "0x03" : "0x00" } } } @@ -28,21 +28,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json index 2598985c5..3a7709346 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json @@ -11,10 +11,10 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", + "balance" : "1000000000000000000", "storage" : { "0x00" : "0x01" } @@ -22,7 +22,7 @@ "1000000000000000000000000000000000000001" : { "balance" : "10000000000", "storage" : { - "0x01" : "0x01" + "0x01" : "0x00" } } } @@ -31,21 +31,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json index a97faf42a..171292f54 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json @@ -9,36 +9,9 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -48,7 +21,7 @@ }, "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00" } }, @@ -59,7 +32,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" + "balance" : "157293" } } } @@ -67,21 +40,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json index fdefdd548..69a788c31 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -53,71 +53,26 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x03" : "0x00", - "0x04" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000002", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000001", - "0x07" : "0x02" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json index 65e7f830f..c0155175d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json @@ -11,19 +11,24 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, "1000000000000000000000000000000000000002" : { "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000002", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000002", - "0x07" : "0x03" + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" } } } @@ -32,14 +37,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json index 4afddbfc7..0040e697b 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -48,66 +48,26 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json index 22355f9f8..9ada3d602 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -24,7 +24,7 @@ "1000000000000000000000000000000000000001" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" } @@ -48,21 +48,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json index 4286be7d4..ecff0c027 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json @@ -9,45 +9,13 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -77,28 +45,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json index 1da3444ab..01b1e6093 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json @@ -15,51 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -101,14 +57,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json index 588eb8d67..a3dee7650 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json @@ -15,51 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158", "Frontier"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -102,19 +58,19 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -122,7 +78,7 @@ "1000000000000000000000000000000000000003" : { "balance" : "0", "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json index 5da343ed7..3cebed8a2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json @@ -15,43 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -86,19 +50,19 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -106,7 +70,7 @@ "1000000000000000000000000000000000000003" : { "balance" : "0", "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json index 79dde9803..7a006e03a 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -45,14 +45,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json index 9b50a5bf4..8750a1027 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json @@ -15,53 +15,11 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -97,14 +55,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json index c8d696990..3a19988df 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json @@ -14,7 +14,7 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000001" : { - "balance" : "20000000000" + "balance" : "10000000000" }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", @@ -28,14 +28,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json index 5811a22a5..b5c16a6ff 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json @@ -15,11 +15,11 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x02" : "0x00" } }, @@ -30,42 +30,7 @@ } }, "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" + "balance" : "10000000000" }, "1000000000000000000000000000000000000003" : { "storage" : { @@ -84,14 +49,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json index 25cff1963..c320a420e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json @@ -14,9 +14,9 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", + "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x01" + "0x00" : "0x00" } }, "1000000000000000000000000000000000000003" : { @@ -32,14 +32,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json index 1241c4371..f7e59f4ac 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json @@ -15,54 +15,18 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", + "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x01" + "0x00" : "0x00" } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00" } }, @@ -85,14 +49,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json index 78fb7f899..6340cd716 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json @@ -9,46 +9,19 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00" } }, "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00" } }, @@ -59,7 +32,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" + "balance" : "25026727" } } } @@ -67,14 +40,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json index 2f7e2d679..8cf3c2322 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json @@ -15,11 +15,11 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00" } }, @@ -36,69 +36,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "1046140" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566207" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568187" + "balance" : "25026727" } } } @@ -106,14 +44,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json index 19f420fab..e5aa299f0 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -41,45 +41,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x01", - "0xe6" : "0x1000000000000000000000000000000000000001", - "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0xec" : "0x40", - "0xee" : "0x21", - "0xf0" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x04" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json index c8a2c4c68..50c85e546 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json @@ -15,15 +15,15 @@ "result" : { "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", - "0x02" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000001", - "0x07" : "0x02", - "0xe6" : "0x1000000000000000000000000000000000000001", - "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0xec" : "0x40", - "0xee" : "0x21", - "0xf0" : "0x01" + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" } } } @@ -32,7 +32,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json index cef0a41b0..bf648b92b 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -36,40 +36,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json index 45ae415bd..40d604afa 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00" } @@ -37,7 +37,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json index 1089c3bc4..7be63eb4a 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json @@ -14,7 +14,7 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000" + "balance" : "1000000000000000000" }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", @@ -28,7 +28,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json index 7935d506d..5c968fbbf 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -24,38 +24,7 @@ } }, "1000000000000000000000000000000000000001" : { - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" + "balance" : "10000000000" }, "1000000000000000000000000000000000000002" : { "storage" : { @@ -76,7 +45,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json index 343491c28..f4db8c1ce 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -48,52 +48,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x01", - "0x05" : "0x1000000000000000000000000000000000000000" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000001", - "0x07" : "0x02" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -107,7 +67,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 5 (CALLER))}", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json index 86a3cb7c3..f786b2bb0 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json @@ -15,20 +15,20 @@ "result" : { "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", - "0x02" : "0x01" + "0x01" : "0x00", + "0x02" : "0x00" } }, "1000000000000000000000000000000000000003" : { "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000001", - "0x07" : "0x03" + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" } } } @@ -37,7 +37,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -51,7 +51,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json index 3a91f8691..5ba0658dc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -48,52 +48,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -107,7 +67,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json index d72e709b5..068998625 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -24,7 +24,7 @@ "1000000000000000000000000000000000000001" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" } @@ -48,7 +48,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -62,7 +62,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json index 4d2618870..95fcbea0f 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json @@ -9,48 +9,13 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -83,7 +48,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -97,7 +62,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json index 1dbe57534..75b715624 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -50,54 +50,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -111,7 +69,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json index f18f44bb7..ace0681a5 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json @@ -9,55 +9,13 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -98,7 +56,7 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { @@ -110,7 +68,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json index 1d3c690cd..628c1a445 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json @@ -15,46 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -84,7 +45,7 @@ "storage" : { "0x03" : "0x00" } - } + } } } ], @@ -92,7 +53,7 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { @@ -104,7 +65,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json index ac0e6f61c..5d8ba9ade 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -48,7 +48,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -62,7 +62,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json index fc0d0c4c5..b18faba61 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -50,54 +50,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -111,7 +69,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json index 6a2f0983b..b4352fe45 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json @@ -23,7 +23,7 @@ "1000000000000000000000000000000000000003" : { "balance" : "10000000000", "storage" : { - "0x03" : "0x01" + "0x03" : "0x00" } } } @@ -32,7 +32,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -46,7 +46,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json index 3b9e831fd..2c3feb0bb 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -25,6 +25,7 @@ } }, "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" }, "1000000000000000000000000000000000000003" : { "storage" : { @@ -38,43 +39,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -88,7 +58,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json index f7c9d03c1..e44dfdf57 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json @@ -14,9 +14,9 @@ "network" : ["ALL"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", + "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x01" + "0x00" : "0x00" } }, "1000000000000000000000000000000000000002" : { @@ -38,7 +38,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -52,7 +52,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json index 76a5f0be8..d5b1c0d48 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", @@ -39,44 +39,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -90,7 +58,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json index b5b1b36ed..7058e4952 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json @@ -9,46 +9,19 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00" } }, "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00" } }, @@ -59,7 +32,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" + "balance" : "25026727" } } } @@ -67,7 +40,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -81,7 +54,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json index 278165537..2e416307d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -36,69 +36,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026070" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566207" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568187" + "balance" : "25026727" } } } @@ -106,7 +44,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -120,7 +58,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json index ced3553c4..2a28ffbc0 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -40,44 +40,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x014a" : "0x1000000000000000000000000000000000000001", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x01" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json index d6446935e..a965eae82 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json @@ -15,16 +15,16 @@ "result" : { "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", - "0x014a" : "0x1000000000000000000000000000000000000001", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000001", - "0x07" : "0x03" + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" } } } @@ -33,7 +33,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json index 577492d8d..002e64df2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : "Frontier", + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -48,52 +48,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json index 1c9bda4de..ef3f8f608 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -23,7 +23,7 @@ }, "1000000000000000000000000000000000000001" : { "storage" : { - "0x01" : "0x01", + "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" } @@ -46,7 +46,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json index b35d1be36..1d775aa1e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json @@ -9,45 +9,13 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -77,7 +45,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json index 17b85a4c0..4815b0cbd 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json @@ -15,7 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -50,54 +50,12 @@ } } } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json index a64fb2285..5a9d87395 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json @@ -9,55 +9,13 @@ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -98,7 +56,7 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json index 109f0f3dc..a1120ab5d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json @@ -15,44 +15,7 @@ "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { @@ -80,7 +43,7 @@ "storage" : { "0x03" : "0x00" } - } + } } } ], @@ -88,7 +51,7 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "storage": {} }, "1000000000000000000000000000000000000001" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json index c07610a26..f04feb2fc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", "0x03" : "0x00" @@ -45,7 +45,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", "nonce" : "0", "storage" : { } -- cgit From 0004e13e8f67dd9e2bc6aa912134efab6b6224e2 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Wed, 17 May 2017 14:50:09 +0300 Subject: update static call tests --- .../static_Call1024BalanceTooLowFiller.json | 52 ++++++++++++-- .../stStaticCall/static_Call1024OOGFiller.json | 48 +++++++++++-- .../static_Call1024PreCalls2Filler.json | 57 +++++++++++++-- .../static_Call1024PreCalls3Filler.json | 49 +++++++++++-- .../static_Call1024PreCallsFiller.json | 54 +++++++++++++-- .../static_Call50000bytesContract50_1Filler.json | 80 +++++++++++++++++++-- .../static_Call50000bytesContract50_2Filler.json | 81 ++++++++++++++++++++-- 7 files changed, 388 insertions(+), 33 deletions(-) (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json index fb9797c9f..afd42b8c9 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -22,7 +22,35 @@ "0x00" : "0x01", "0x01" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1000001848dd" + } + } } } ], @@ -43,18 +71,32 @@ "storage" : { } }, - + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1024", "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "17592186099592" @@ -62,7 +104,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json index 4320b1dc3..c84f7cb2e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis" ], "result" : { "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { @@ -19,7 +19,32 @@ "0x01" : "0x00", "0x02" : "0x03e9" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x06ba56" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xebe90c" + } + } } } ], @@ -38,17 +63,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1024", "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV (MLOAD 0) 1025))) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 32 (ADD 1(MUL (MLOAD 0) 1000))) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "15720826" @@ -56,7 +96,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json index e01af799e..11ae1b7da 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -19,12 +19,42 @@ "result" : { "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "storage" : { - "0x00" : "0x0401", + "0x00" : "0x0400", "0x01" : "0x01", "0x02" : "0x00", "0x03" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffea056fd" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdcd15d" + } + } } } ], @@ -36,9 +66,16 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "7000", - "code" : "", + "code" : "{ (MSTORE 0 1)}", "nonce" : "0", "storage" : { } @@ -49,11 +86,19 @@ "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (DELEGATECALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "0x7ffffffffffffff0" @@ -61,7 +106,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json index df2e65015..378ddcf9e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis" ], "result" : { "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { @@ -20,7 +20,33 @@ "0x02" : "0x01", "0x03" : "0x01" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + } } } ], @@ -32,6 +58,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "7000", "code" : "", @@ -45,11 +78,19 @@ "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "0x7ffffffffffffff0" @@ -57,7 +98,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json index c9f3d3290..fe36dc627 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -24,7 +24,37 @@ "0x02" : "0x01", "0x03" : "0x01" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + } } } ], @@ -38,6 +68,14 @@ } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "7000", "code" : "", @@ -51,11 +89,19 @@ "nonce" : "0", "storage" : { } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "0x7ffffffffffffff0" @@ -63,7 +109,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json index 630758841..8cc5fa611 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -29,7 +29,7 @@ } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "882500000000", + "balance" : "868710963011", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -42,7 +42,55 @@ "0x00" : "0x00", "0x01" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "6109295", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78bc6eb4" + } + } } } ], @@ -54,6 +102,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", @@ -67,11 +122,26 @@ "nonce" : "0", "storage" : { } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016000", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "882500000000" @@ -79,7 +149,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json index 29907a5bf..0bb1875c7 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 1, "gas" : -1, "value" : -1 }, @@ -30,7 +30,7 @@ } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "882500000000", + "balance" : "3109445", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -43,7 +43,56 @@ "0x00" : "0x00", "0x01" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78ea34de" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } } } ], @@ -55,6 +104,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", @@ -68,11 +124,26 @@ "nonce" : "0", "storage" : { } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "882500000000" @@ -80,7 +151,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] -- cgit From 8fc93bc232a640416480ac6fa8748c9a49016f26 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Thu, 18 May 2017 20:30:28 +0300 Subject: update staticcall fillers --- .../stStaticCall/static_Call50000Filler.json | 79 +++++++++++++++++-- .../stStaticCall/static_Call50000_ecrecFiller.json | 72 +++++++++++++++-- .../static_Call50000_identity2Filler.json | 72 +++++++++++++++-- .../static_Call50000_identityFiller.json | 72 +++++++++++++++-- .../static_Call50000_rip160Filler.json | 72 +++++++++++++++-- .../static_Call50000_sha256Filler.json | 75 ++++++++++++++++-- .../static_Call50000bytesContract50_3Filler.json | 80 +++++++++++++++++-- ...codeConsumeMoreGasThenTransactionHasFiller.json | 54 ++++++++++++- ...AskMoreGasOnDepth2ThenTransactionHasFiller.json | 82 +++++++++++++++++-- .../stStaticCall/static_callcall_00Filler.json | 70 ++++++++++++++++- .../static_callcall_00_OOGEFiller.json | 75 ++++++++++++++++-- .../static_callcall_00_OOGE_1Filler.json | 72 +++++++++++++++-- .../static_callcall_00_OOGE_2Filler.json | 43 ++++++++-- .../static_callcall_00_SuicideEndFiller.json | 2 +- .../static_callcallcall_000Filler.json | 91 ++++++++++++++++++++-- .../static_callcallcall_000_OOGEFiller.json | 64 +++++++++++++-- .../static_callcallcall_000_OOGMAfter2Filler.json | 6 +- .../static_callcallcall_000_OOGMAfterFiller.json | 11 +-- .../static_callcallcall_000_OOGMBeforeFiller.json | 8 +- .../static_callcallcall_000_SuicideEndFiller.json | 22 +++--- ...tatic_callcallcall_000_SuicideMiddleFiller.json | 11 +-- .../static_callcallcall_ABCB_RECURSIVEFiller.json | 10 +-- .../static_callcallcallcode_001Filler.json | 71 ++++++++++++++--- .../static_callcallcallcode_001_2Filler.json | 74 ++++++++++++++++-- .../static_callcallcallcode_001_OOGEFiller.json | 8 +- .../static_callcallcallcode_001_OOGE_2Filler.json | 67 +++++++++------- 26 files changed, 1198 insertions(+), 165 deletions(-) (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json index e2d3e4d04..2453b509c 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json @@ -11,14 +11,14 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffaef00bf", + "balance" : "340282366920938463463374607431684514059", "code" : "0x", "nonce" : "0x01", "storage" : { @@ -32,7 +32,7 @@ } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0510ff40", + "balance" : "83697386", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -44,7 +44,57 @@ "nonce" : "0x00", "storage" : { } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x142e79" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431729032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "39179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02bb7917" + } + } } } ], @@ -63,17 +113,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "85000000" @@ -81,7 +146,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json index c51a4f70f..be5f7ffa0 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json @@ -11,21 +11,21 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffa5e0b5f", + "balance" : "340282366920938463463374607431675162497", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05a1f4a0", + "balance" : "93048948", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -37,7 +37,50 @@ "nonce" : "0x00", "storage" : { } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x16724f" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431704032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "64179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01cef637" + } + } } } ], @@ -49,17 +92,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 500 1 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 500 1 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "94500000" @@ -67,7 +125,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json index fd1d85c2e..c249cb019 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json @@ -11,21 +11,21 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffabd696f", + "balance" : "340282366920938463463374607431681314841", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05429690", + "balance" : "86896604", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -37,7 +37,50 @@ "nonce" : "0x00", "storage" : { } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431728132084", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "40079361", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02df54b2" + } + } } } ], @@ -49,17 +92,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 1 50000)) ) (MSTORE 32 @i) (MSTORE 64 @1 ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "88250000" @@ -67,7 +125,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json index 645ced581..dc44d1545 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json @@ -11,21 +11,21 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffabd696f", + "balance" : "340282366920938463463374607431681314841", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "88250000", + "balance" : "86896604", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -37,7 +37,50 @@ "nonce" : "0x00", "storage" : { } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431728282105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "39929340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02e19eb7" + } + } } } ], @@ -49,17 +92,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "88250000" @@ -67,7 +125,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json index df8856cd6..54ea1f5df 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json @@ -11,21 +11,21 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431449195946", + "balance" : "340282366920938463463374607431449147108", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "319015499", + "balance" : "319064337", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -39,7 +39,52 @@ "0x00" : "0x01", "0x01" : "0xc350" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xd6ee8452" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431699032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "69179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000526001608051016080526000565b608051602052", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xe5d37597" + } + } } } ], @@ -51,17 +96,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 3 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 3 0 50000 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "3925000000" @@ -69,7 +129,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json index 60a8fdb33..8b77958dd 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -21,14 +21,14 @@ "shouldnotexist" : "1" }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431476195946", + "balance" : "340282366920938463463374607431476147108", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "292015499", + "balance" : "292064337", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -42,7 +42,55 @@ "0x00" : "0x01", "0x01" : "0xc350" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xd88a8112" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431726032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "42179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000526001608051016080526000565b608051602052", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xe76f7257" + } + } } } ], @@ -54,17 +102,32 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 2 0 50000 0 0) ) [[ 1 ]] @i}", "nonce" : "0", "storage" : { } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 2 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "3925000000" @@ -72,7 +135,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json index 707cc04e5..31b34cd57 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -29,7 +29,7 @@ } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "882500000000", + "balance" : "868710963011", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -42,7 +42,55 @@ "0x00" : "0x00", "0x01" : "0x00" } - } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "312795", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd7914e148" + } + } } } ], @@ -54,6 +102,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xfffffffffffff", "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", @@ -67,11 +122,26 @@ "nonce" : "0", "storage" : { } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "882500000000" @@ -79,7 +149,7 @@ "gasPrice" : "1", "nonce" : "", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "10" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json index b57cb276e..6f32e77b0 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -32,6 +32,30 @@ } } } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08aa2f", + "0x09" : "0x01", + "0x0a" : "0x01" + } + }, + "2000000000000000000000000000000000000103" : { + "code" : "0x6012600052", + "nonce" : "0x00", + "storage" : { + } + } + } } ], "pre" : @@ -43,6 +67,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0", "nonce" : "0", @@ -59,11 +90,28 @@ "code" : "{ (SSTORE 0 0x12) } ", "storage": { } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.", + "code" : "Staticcall goes oog and eats 600k gas", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "storage": { + } + }, + "2000000000000000000000000000000000000103" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 0 0x12) } ", + "storage": { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "600000" @@ -71,7 +119,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json index cfd3dec40..59710ceed 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -19,8 +19,8 @@ "result" : { "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "storage" : { - "0x08" : "0x08d5b6", - "0x09" : "0x00" + "0x08" : "0x08aa2f", + "0x09" : "0x01" } }, "1000000000000000000000000000000000000107" : { @@ -33,6 +33,45 @@ "storage" : { "0x08" : "0x00" } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x04df0e" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08aa2f", + "0x09" : "0x01" + } + }, + "2000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "2000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x07dd3b" + } } } } @@ -46,6 +85,13 @@ "storage" : { } }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0", "nonce" : "0", @@ -57,7 +103,7 @@ "1000000000000000000000000000000000000107" : { "balance" : "0", "nonce" : "0", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0)) } ", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0)) } ", "storage": { } }, @@ -68,11 +114,35 @@ "code" : "{ (SSTORE 8 (GAS))} ", "storage": { } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "ordinal call should work but on second depth it has call that asks more gas than left", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x2000000000000000000000000000000000000107 0 0 0 0)) } ", + "storage": { + } + }, + "2000000000000000000000000000000000000107" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000108 0 0 0 0)) } ", + "storage": { + } + }, + "2000000000000000000000000000000000000108" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be set in the post state", + "code" : "{ (MSTORE 8 (GAS))} ", + "storage": { + } } }, "transaction" : { "data" : [ - "" + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ "600000" @@ -80,7 +150,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "1000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json index 598bb5ed7..6dfbe99f2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json @@ -10,9 +10,15 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fea6" + } + }, "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01" @@ -31,9 +37,45 @@ } } } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccedd" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -55,6 +97,27 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 1) (MSTORE 32 (CALLER)) (MSTORE 64 (CALLVALUE)) (MSTORE 96 (ADDRESS)) (MSTORE 128 (ORIGIN)) (MSTORE 160 (CALLDATASIZE)) (MSTORE 192 (CODESIZE)) (MSTORE 224 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -65,7 +128,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "3000000" @@ -73,7 +137,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json index 4ddea4cbc..f30e80982 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { @@ -30,11 +30,54 @@ "storage" : { "0x02" : "0x00" } - } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } + } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -44,7 +87,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -56,6 +99,27 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -66,7 +130,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "172000" @@ -74,7 +139,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json index b858d8427..9cc5537bc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json @@ -11,12 +11,18 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } + }, "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01" @@ -29,9 +35,43 @@ } } } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + } + } } ], - "pre" : { + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", @@ -40,7 +80,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -50,6 +90,25 @@ "nonce" : "0", "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", "storage": {} + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", @@ -60,15 +119,16 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "180066" + "380066" ], "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json index 9522c04ba..39e859850 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json @@ -25,13 +25,26 @@ }, "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01" + "0x00" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" } } } } ], - "pre" : { + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", @@ -40,7 +53,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -51,6 +64,25 @@ "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", "storage": {} }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "nonce" : "0", @@ -60,7 +92,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "150066" @@ -68,7 +101,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json index aad89b7b3..8dff7492d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json @@ -45,7 +45,7 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SSTORE 2 1) }", + "code" : "{ (MSTORE 2 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json index 84f3a3a5c..494ed5d0f 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { @@ -37,11 +37,61 @@ "0x04" : "0x00", "0x07" : "0x00" } - } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fbaa" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" + } + } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -51,14 +101,14 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -70,6 +120,34 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -80,7 +158,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "3000000" @@ -88,7 +167,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json index ee72783fc..1c62e31ad 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json @@ -10,7 +10,7 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { @@ -38,11 +38,36 @@ "storage" : { "0x03" : "0x00" } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -52,14 +77,14 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -71,6 +96,34 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x2000000000000000000000000000000000000003 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -81,7 +134,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "172000" @@ -89,7 +143,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json index ebb876f2e..05580b402 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json @@ -53,21 +53,21 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ (STATICCALL 45000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 45000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json index 10ca3459e..26559adaf 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json @@ -22,7 +22,8 @@ "0x00" : "0x00", "0x01" : "0x00", "0x02" : "0x00", - "0x03" : "0x00" + "0x03" : "0x00", + "0x6f" : "0x014c81" } }, "1000000000000000000000000000000000000001" : { @@ -50,19 +51,19 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS)}", "storage": {} }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } @@ -70,7 +71,7 @@ "1000000000000000000000000000000000000003" : { "balance" : "0", "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json index 9f4ac28c4..5bf67f78f 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json @@ -16,7 +16,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0x00", + "0x01" : "0x015d7b", "0x02" : "0x00", "0x03" : "0x00" } @@ -45,7 +45,7 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } @@ -59,14 +59,14 @@ }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json index f227ce048..8c73fcdcc 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json @@ -11,16 +11,16 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000" - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", + "1000000000000000000000000000000000000000" : { "storage" : { - "0x03" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2b9a37" } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" } } } @@ -28,28 +28,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json index 3a7709346..78d8a8394 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json @@ -16,7 +16,8 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x01" + "0x00" : "0x01", + "0x01" : "0x2b9a37" } }, "1000000000000000000000000000000000000001" : { @@ -31,28 +32,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json index 171292f54..3ea7efff9 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json @@ -15,7 +15,7 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", + "0x00" : "0x00", "0x01" : "0x00" } }, @@ -32,7 +32,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "157293" + "balance" : "139959" } } } @@ -40,21 +40,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 2 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 4 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 5 1) (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 6 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json index 69a788c31..47ba77e15 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : -1, + "data" : 0, "gas" : -1, "value" : -1 }, @@ -45,34 +45,56 @@ "0x07" : "0x00" } }, - "1000000000000000000000000000000000000003" : { + "a000000000000000000000000000000000000000" : { "storage" : { - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00" + "0x00" : "0x01", + "0x01" : "0x28fba1" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" } } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -84,6 +106,34 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -94,7 +144,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "3000000" @@ -102,7 +153,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json index c0155175d..4b0326f33 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json @@ -10,12 +10,38 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000000" : { + "a000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01" + "0x00" : "0x01", + "0x01" : "0x283b4b" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2cb205" } }, "1000000000000000000000000000000000000002" : { @@ -35,6 +61,13 @@ } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -44,7 +77,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -63,6 +96,34 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 4 1) (CALLCODE 250000 0x2000000000000000000000000000000000000003 3 0 64 0 64 ) (MSTORE 6 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -73,7 +134,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "3000000" @@ -81,7 +143,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json index 0040e697b..edfbbddc9 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json @@ -53,28 +53,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json index 9ada3d602..cd4fb7884 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json @@ -13,39 +13,23 @@ "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000000" : { + "a000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" + "0x01" : "0x01574b" } } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", @@ -74,6 +58,34 @@ "storage" : { } }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -84,7 +96,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "172000" @@ -92,7 +105,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] -- cgit From 1a71eb49f0125b6f91e9ac7614712531d4ecb827 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Sat, 20 May 2017 11:28:48 +0300 Subject: update static call tests --- ...atic_callcallcallcode_001_OOGMAfter2Filler.json | 14 ++++++++++--- ...tatic_callcallcallcode_001_OOGMAfterFiller.json | 20 ++++++++++++------ ...tic_callcallcallcode_001_OOGMAfter_2Filler.json | 14 ++++++++++--- ...tic_callcallcallcode_001_OOGMAfter_3Filler.json | 14 ++++++++++--- ...tic_callcallcallcode_001_OOGMBefore2Filler.json | 24 ++++++++++++++-------- ...atic_callcallcallcode_001_OOGMBeforeFiller.json | 22 +++++++++++++------- ...tic_callcallcallcode_001_SuicideEnd2Filler.json | 16 ++++++++++----- ...atic_callcallcallcode_001_SuicideEndFiller.json | 12 ++++++----- ..._callcallcallcode_001_SuicideMiddle2Filler.json | 13 ++++++------ ...c_callcallcallcode_001_SuicideMiddleFiller.json | 11 +++++----- ...tic_callcallcallcode_ABCB_RECURSIVE2Filler.json | 8 ++++---- ...atic_callcallcallcode_ABCB_RECURSIVEFiller.json | 8 ++++---- 12 files changed, 117 insertions(+), 59 deletions(-) (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json index ecff0c027..a652a4e8d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json @@ -16,7 +16,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x00", + "0x01" : "0x014b7e", "0x02" : "0x00", "0x03" : "0x00" } @@ -45,7 +45,14 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", "nonce" : "0", "storage" : { } @@ -81,7 +88,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json index 01b1e6093..18e7cbd9d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json @@ -20,7 +20,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x00", + "0x01" : "0x014b7e", "0x02" : "0x00" } }, @@ -57,28 +57,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -93,7 +100,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json index a3dee7650..c53cdc1d5 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json @@ -20,7 +20,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x00", + "0x01" : "0x014b7e", "0x02" : "0x00" } }, @@ -58,9 +58,16 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS)}", "storage": {} }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000001" : { "balance" : "0", "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", @@ -90,7 +97,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json index 3cebed8a2..75310a2fb 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json @@ -20,7 +20,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x00", + "0x01" : "0x014b7e", "0x02" : "0x00", "0x03" : "0x00" } @@ -50,7 +50,7 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", "storage": {} }, "1000000000000000000000000000000000000001" : { @@ -60,6 +60,13 @@ "storage" : { } }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000002" : { "balance" : "0", "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", @@ -82,7 +89,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json index 7a006e03a..7d29a9c74 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json @@ -11,12 +11,12 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", + "0x00" : "0x01", + "0x01" : "0x015c55", "0x02" : "0x00", "0x03" : "0x00" } @@ -45,28 +45,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (SSTORE 1 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -81,7 +88,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json index 8750a1027..bf4c0f8d2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json @@ -19,8 +19,8 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", + "0x00" : "0x01", + "0x01" : "0x015c58", "0x02" : "0x00", "0x03" : "0x00" } @@ -55,28 +55,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -91,7 +98,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json index 3a19988df..57c3c4477 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json @@ -11,8 +11,14 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000" }, @@ -28,28 +34,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json index b5c16a6ff..32dbae7f5 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json @@ -19,11 +19,13 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", + "0x00" : "0x01", + "0x01" : "0x2b9a4b", "0x02" : "0x00" } }, "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", "storage" : { "0x01" : "0x00", "0x03" : "0x00" @@ -49,28 +51,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json index c320a420e..3441ae64a 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json @@ -11,12 +11,13 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2b9a37" } }, "1000000000000000000000000000000000000003" : { @@ -32,28 +33,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json index f7e59f4ac..2d8d04015 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json @@ -20,7 +20,8 @@ "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", "storage" : { - "0x00" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2b9a37" } }, "1000000000000000000000000000000000000001" : { @@ -49,28 +50,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json index 6340cd716..ea92ad3cf 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json @@ -32,7 +32,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" + "balance" : "140109" } } } @@ -40,21 +40,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 2 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) (MSTORE 2 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json index 8cf3c2322..86a544ba9 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json @@ -36,7 +36,7 @@ } }, "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" + "balance" : "139959" } } } @@ -44,21 +44,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 31 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 31 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 21 1) }", "nonce" : "0", "storage" : { } -- cgit From fcc8568430a653d97204c3cc3242f697be36943e Mon Sep 17 00:00:00 2001 From: Dimitry Date: Mon, 22 May 2017 20:12:44 +0300 Subject: move unprepared staticcall tests to subfolder --- .../static_CALL_OneVCallSuicideFiller.json | 94 +++++ .../static_CALL_ZeroVCallSuicideFiller.json | 94 +++++ ...tic_CREATE_ContractSuicideDuringInitFiller.json | 86 +++++ ...uicideDuringInit_ThenStoreThenReturnFiller.json | 106 ++++++ ..._ContractSuicideDuringInit_WithValueFiller.json | 86 +++++ ...tSuicideDuringInit_WithValueToItselfFiller.json | 148 ++++++++ ...TE_EContractCreateEContractInInit_TrFiller.json | 84 +++++ ...ContractCreateNEContractInInitOOG_TrFiller.json | 115 ++++++ ...E_EContractCreateNEContractInInit_TrFiller.json | 90 +++++ ...E_EContract_ThenCALLToNonExistentAccFiller.json | 121 ++++++ ...c_CREATE_EmptyContractAndCallIt_0weiFiller.json | 112 ++++++ ...c_CREATE_EmptyContractAndCallIt_1weiFiller.json | 115 ++++++ ...ptyContractWithStorageAndCallIt_0weiFiller.json | 135 +++++++ ...ptyContractWithStorageAndCallIt_1weiFiller.json | 114 ++++++ ...atic_CREATE_EmptyContractWithStorageFiller.json | 129 +++++++ ...empty000CreateinInitCode_TransactionFiller.json | 94 +++++ ...ContractToCreateContractAndCallItOOGFiller.json | 124 +++++++ ...lContractToCreateContractOOGBonusGasFiller.json | 124 +++++++ ...atic_CallContractToCreateContractOOGFiller.json | 62 ++++ ...ractWhichWouldCreateContractIfCalledFiller.json | 133 +++++++ .../static_CallEcrecover0Filler.json | 62 ++++ .../static_CallEcrecover0_0inputFiller.json | 60 +++ .../static_CallEcrecover0_Gas2999Filler.json | 60 +++ .../static_CallEcrecover0_NoGasFiller.json | 84 +++++ ...c_CallEcrecover0_completeReturnValueFiller.json | 61 +++ .../static_CallEcrecover0_gas3000Filler.json | 62 ++++ ...allEcrecover0_overlappingInputOutputFiller.json | 62 ++++ .../static_CallEcrecover1Filler.json | 60 +++ .../static_CallEcrecover2Filler.json | 60 +++ .../static_CallEcrecover3Filler.json | 61 +++ .../static_CallEcrecover80Filler.json | 62 ++++ .../static_CallEcrecoverCheckLengthFiller.json | 62 ++++ ...tatic_CallEcrecoverCheckLengthWrongVFiller.json | 62 ++++ .../static_CallEcrecoverH_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverR_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverS_prefixed0Filler.json | 62 ++++ .../static_CallEcrecoverV_prefixed0Filler.json | 62 ++++ .../static_CallGoesOOGOnSecondLevel2Filler.json | 105 ++++++ .../static_CallGoesOOGOnSecondLevelFiller.json | 106 ++++++ .../static_CallIdentitiy_1Filler.json | 61 +++ .../static_CallIdentity_1_nonzeroValueFiller.json | 64 ++++ .../static_CallIdentity_2Filler.json | 61 +++ .../static_CallIdentity_3Filler.json | 61 +++ .../static_CallIdentity_4Filler.json | 61 +++ .../static_CallIdentity_4_gas17Filler.json | 61 +++ .../static_CallIdentity_4_gas18Filler.json | 61 +++ .../static_CallIdentity_5Filler.json | 60 +++ .../static_CallLoseGasOOGFiller.json | 64 ++++ .../static_CallRecursiveBomb0Filler.json | 90 +++++ ...allRecursiveBomb0_OOG_atMaxCallDepthFiller.json | 77 ++++ .../static_CallRecursiveBomb1Filler.json | 77 ++++ .../static_CallRecursiveBomb2Filler.json | 77 ++++ .../static_CallRecursiveBomb3Filler.json | 75 ++++ .../static_CallRecursiveBombLog2Filler.json | 90 +++++ .../static_CallRecursiveBombLogFiller.json | 90 +++++ .../static_CallRecursiveBombPreCall2Filler.json | 67 ++++ .../static_CallRecursiveBombPreCallFiller.json | 102 +++++ .../static_CallRipemd160_1Filler.json | 61 +++ .../static_CallRipemd160_2Filler.json | 61 +++ .../static_CallRipemd160_3Filler.json | 61 +++ .../static_CallRipemd160_3_postfixed0Filler.json | 61 +++ .../static_CallRipemd160_3_prefixed0Filler.json | 61 +++ .../static_CallRipemd160_4Filler.json | 61 +++ .../static_CallRipemd160_4_gas719Filler.json | 60 +++ .../static_CallRipemd160_5Filler.json | 60 +++ .../static_CallSha256_1Filler.json | 61 +++ .../static_CallSha256_1_nonzeroValueFiller.json | 64 ++++ .../static_CallSha256_2Filler.json | 61 +++ .../static_CallSha256_3Filler.json | 61 +++ .../static_CallSha256_3_postfix0Filler.json | 61 +++ .../static_CallSha256_3_prefix0Filler.json | 61 +++ .../static_CallSha256_4Filler.json | 61 +++ .../static_CallSha256_4_gas99Filler.json | 61 +++ .../static_CallSha256_5Filler.json | 60 +++ .../static_CallToNameRegistrator0Filler.json | 68 ++++ ...llToNameRegistratorAddressTooBigLeftFiller.json | 67 ++++ ...lToNameRegistratorAddressTooBigRightFiller.json | 68 ++++ ...istratorMemOOGAndInsufficientBalanceFiller.json | 67 ++++ ..._CallToNameRegistratorNotMuchMemory0Filler.json | 67 ++++ ..._CallToNameRegistratorNotMuchMemory1Filler.json | 67 ++++ ...static_CallToNameRegistratorOutOfGasFiller.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory0Filler.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory1Filler.json | 67 ++++ ..._CallToNameRegistratorTooMuchMemory2Filler.json | 67 ++++ ...oNameRegistratorZeorSizeMemExpansionFiller.json | 67 ++++ .../static_CallToReturn1Filler.json | 67 ++++ .../static_CalltoReturn2Filler.json | 68 ++++ ...CallThatAskForeGasThenTrabsactionHasFiller.json | 83 +++++ .../static_InternalCallHittingGasLimit2Filler.json | 67 ++++ .../static_InternalCallHittingGasLimitFiller.json | 67 ++++ ...c_InternalCallHittingGasLimitSuccessFiller.json | 68 ++++ .../static_InternlCallStoreClearsOOGFiller.json | 94 +++++ .../static_InternlCallStoreClearsSuccesFiller.json | 84 +++++ .../static_LoopCallsDepthThenRevert2Filler.json | 61 +++ .../static_LoopCallsDepthThenRevert3Filler.json | 65 ++++ .../static_LoopCallsDepthThenRevertFiller.json | 94 +++++ .../static_LoopCallsThenRevertFiller.json | 114 ++++++ .../static_NewGasPriceForCodesFiller.json | 154 ++++++++ .../static_NonZeroValue_CALL2Filler.json | 88 +++++ .../static_NonZeroValue_CALL_ToEmptyFiller.json | 113 ++++++ ...onZeroValue_CALL_ToNonNonZeroBalanceFiller.json | 91 +++++ ...ic_NonZeroValue_CALL_ToOneStorageKeyFiller.json | 123 ++++++ .../static_PostToReturn1Filler.json | 68 ++++ .../static_RETURN_BoundsFiller.json | 183 +++++++++ .../static_RETURN_BoundsOOGFiller.json | 172 +++++++++ .../static_RawCallGasAskFiller.json | 95 +++++ .../static_RawCallGasFiller.json | 95 +++++ .../static_RawCallGasValueTransferAskFiller.json | 95 +++++ .../static_RawCallGasValueTransferFiller.json | 95 +++++ ...tic_RawCallGasValueTransferMemoryAskFiller.json | 95 +++++ ...static_RawCallGasValueTransferMemoryFiller.json | 95 +++++ .../static_RawCallMemoryGasAskFiller.json | 95 +++++ .../static_RawCallMemoryGasFiller.json | 95 +++++ .../static_Return50000Filler.json | 90 +++++ .../static_Return50000_2Filler.json | 90 +++++ .../static_ReturnTest2Filler.json | 68 ++++ .../static_ReturnTestFiller.json | 67 ++++ .../static_RevertDepth2Filler.json | 106 ++++++ ...ic_RevertDepthCreateAddressCollisionFiller.json | 222 +++++++++++ .../static_RevertDepthCreateOOGFiller.json | 178 +++++++++ .../static_RevertOpcodeCallsFiller.json | 299 +++++++++++++++ .../static_RevertOpcodeDirectCallFiller.json | 116 ++++++ .../static_RevertOpcodeMultipleSubCallsFiller.json | 412 +++++++++++++++++++++ .../static_RevertOpcodeReturnFiller.json | 157 ++++++++ .../static_RevertPrecompiledTouchFiller.json | 135 +++++++ .../static_RevertPrefoundCallFiller.json | 105 ++++++ .../static_RevertPrefoundCallOOGFiller.json | 71 ++++ .../static_RevertPrefoundEmptyCallFiller.json | 101 +++++ .../static_RevertPrefoundEmptyCallOOGFiller.json | 71 ++++ ...reClearsAndInternlCallStoreClearsOOGFiller.json | 101 +++++ ...earsAndInternlCallStoreClearsSuccessFiller.json | 89 +++++ .../static_SuicideToExistingContractFiller.json | 91 +++++ .../static_SuicideToNotExistingContractFiller.json | 109 ++++++ ...ernlCallSuicidesBonusGasAtCallFailedFiller.json | 66 ++++ ...AndInternlCallSuicidesBonusGasAtCallFiller.json | 84 +++++ ...ic_SuicidesAndInternlCallSuicidesOOGFiller.json | 72 ++++ ...uicidesAndInternlCallSuicidesSuccessFiller.json | 82 ++++ .../static_SuicidesStopAfterSuicideFiller.json | 73 ++++ .../static_TouchToEmptyAccountRevert2Filler.json | 77 ++++ .../static_TouchToEmptyAccountRevert3Filler.json | 91 +++++ .../static_TouchToEmptyAccountRevertFiller.json | 77 ++++ .../static_Transaction64Rule_d64e0Filler.json | 75 ++++ .../static_Transaction64Rule_d64m1Filler.json | 96 +++++ .../static_Transaction64Rule_d64p1Filler.json | 76 ++++ .../static_ZeroValue_CALL2Filler.json | 67 ++++ .../static_ZeroValue_CALL_OOGRevertFiller.json | 69 ++++ .../static_ZeroValue_CALL_ToEmpty2Filler.json | 74 ++++ ...tic_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json | 76 ++++ ...tic_ZeroValue_CALL_ToNonZeroBalance2Filler.json | 74 ++++ ...alue_CALL_ToNonZeroBalance_OOGRevertFiller.json | 76 ++++ ...atic_ZeroValue_CALL_ToOneStorageKey2Filler.json | 95 +++++ ...Value_CALL_ToOneStorageKey_OOGRevertFiller.json | 77 ++++ .../static_ZeroValue_SUICIDE_OOGRevertFiller.json | 72 ++++ ..._ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json | 79 ++++ ...e_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json | 79 ++++ ...ue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json | 82 ++++ .../static_callOutput1Filler.json | 63 ++++ .../static_callOutput2Filler.json | 63 ++++ .../static_callOutput3FailFiller.json | 63 ++++ .../static_callOutput3Filler.json | 63 ++++ .../static_callOutput3partialFailFiller.json | 63 ++++ .../static_callOutput3partialFiller.json | 63 ++++ .../static_callWithHighValueAndGasOOGFiller.json | 62 ++++ ...tic_callWithHighValueAndOOGatTxLevelFiller.json | 78 ++++ .../static_callWithHighValueFiller.json | 62 ++++ .../static_callWithHighValueOOGinCallFiller.json | 86 +++++ .../static_call_OOG_additionalGasCosts1Filler.json | 73 ++++ .../static_call_OOG_additionalGasCosts2Filler.json | 65 ++++ ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 108 ++++++ ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 105 ++++++ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 102 +++++ ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 101 +++++ ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 108 ++++++ ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 85 +++++ ...atic_callcallcodecall_010_SuicideEndFiller.json | 97 +++++ ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 +++++ ...c_callcallcodecall_010_SuicideMiddleFiller.json | 97 +++++ ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 86 +++++ ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 90 +++++ .../static_callcallcodecallcode_011Filler.json | 98 +++++ .../static_callcallcodecallcode_011_2Filler.json | 86 +++++ ...static_callcallcodecallcode_011_OOGEFiller.json | 106 ++++++ ...atic_callcallcodecallcode_011_OOGE_2Filler.json | 99 +++++ ..._callcallcodecallcode_011_OOGMAfter2Filler.json | 98 +++++ ...c_callcallcodecallcode_011_OOGMAfterFiller.json | 108 ++++++ ...callcallcodecallcode_011_OOGMAfter_1Filler.json | 105 ++++++ ...callcallcodecallcode_011_OOGMAfter_2Filler.json | 100 +++++ ...callcallcodecallcode_011_OOGMBefore2Filler.json | 98 +++++ ..._callcallcodecallcode_011_OOGMBeforeFiller.json | 150 ++++++++ ...callcallcodecallcode_011_SuicideEnd2Filler.json | 80 ++++ ..._callcallcodecallcode_011_SuicideEndFiller.json | 135 +++++++ ...lcallcodecallcode_011_SuicideMiddle2Filler.json | 94 +++++ ...llcallcodecallcode_011_SuicideMiddleFiller.json | 112 ++++++ ...callcallcodecallcode_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcallcodecallcode_ABCB_RECURSIVEFiller.json | 152 ++++++++ .../static_callcode_checkPCFiller.json | 61 +++ .../static_callcodecall_10Filler.json | 115 ++++++ .../static_callcodecall_10_2Filler.json | 83 +++++ .../static_callcodecall_10_OOGEFiller.json | 123 ++++++ .../static_callcodecall_10_OOGE_2Filler.json | 84 +++++ .../static_callcodecall_10_SuicideEnd2Filler.json | 78 ++++ .../static_callcodecall_10_SuicideEndFiller.json | 108 ++++++ .../static_callcodecallcall_100Filler.json | 134 +++++++ .../static_callcodecallcall_100_2Filler.json | 95 +++++ .../static_callcodecallcall_100_OOGE2Filler.json | 99 +++++ .../static_callcodecallcall_100_OOGEFiller.json | 148 ++++++++ ...atic_callcodecallcall_100_OOGMAfter2Filler.json | 132 +++++++ ...tatic_callcodecallcall_100_OOGMAfterFiller.json | 150 ++++++++ ...tic_callcodecallcall_100_OOGMAfter_2Filler.json | 147 ++++++++ ...tic_callcodecallcall_100_OOGMAfter_3Filler.json | 133 +++++++ ...tic_callcodecallcall_100_OOGMBefore2Filler.json | 104 ++++++ ...atic_callcodecallcall_100_OOGMBeforeFiller.json | 150 ++++++++ ...tic_callcodecallcall_100_SuicideEnd2Filler.json | 91 +++++ ...atic_callcodecallcall_100_SuicideEndFiller.json | 139 +++++++ ..._callcodecallcall_100_SuicideMiddle2Filler.json | 85 +++++ ...c_callcodecallcall_100_SuicideMiddleFiller.json | 127 +++++++ ...tic_callcodecallcall_ABCB_RECURSIVE2Filler.json | 113 ++++++ ...atic_callcodecallcall_ABCB_RECURSIVEFiller.json | 167 +++++++++ .../static_callcodecallcallcode_101Filler.json | 152 ++++++++ .../static_callcodecallcallcode_101_2Filler.json | 91 +++++ ...static_callcodecallcallcode_101_OOGEFiller.json | 148 ++++++++ ...atic_callcodecallcallcode_101_OOGE_2Filler.json | 99 +++++ ..._callcodecallcallcode_101_OOGMAfter2Filler.json | 136 +++++++ ...c_callcodecallcallcode_101_OOGMAfterFiller.json | 150 ++++++++ ...callcodecallcallcode_101_OOGMAfter_1Filler.json | 131 +++++++ ...callcodecallcallcode_101_OOGMAfter_3Filler.json | 147 ++++++++ ...callcodecallcallcode_101_OOGMBefore2Filler.json | 101 +++++ ..._callcodecallcallcode_101_OOGMBeforeFiller.json | 150 ++++++++ ...callcodecallcallcode_101_SuicideEnd2Filler.json | 84 +++++ ..._callcodecallcallcode_101_SuicideEndFiller.json | 143 +++++++ ...lcodecallcallcode_101_SuicideMiddle2Filler.json | 93 +++++ ...llcodecallcallcode_101_SuicideMiddleFiller.json | 127 +++++++ ...callcodecallcallcode_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcodecallcallcode_ABCB_RECURSIVEFiller.json | 167 +++++++++ .../static_callcodecallcodecall_1102Filler.json | 91 +++++ .../static_callcodecallcodecall_110Filler.json | 140 +++++++ .../static_callcodecallcodecall_110_2Filler.json | 91 +++++ ...tatic_callcodecallcodecall_110_OOGE2Filler.json | 100 +++++ ...static_callcodecallcodecall_110_OOGEFiller.json | 150 ++++++++ ..._callcodecallcodecall_110_OOGMAfter2Filler.json | 136 +++++++ ...c_callcodecallcodecall_110_OOGMAfterFiller.json | 150 ++++++++ ...callcodecallcodecall_110_OOGMAfter_2Filler.json | 147 ++++++++ ...callcodecallcodecall_110_OOGMAfter_3Filler.json | 141 +++++++ ...callcodecallcodecall_110_OOGMBefore2Filler.json | 102 +++++ ..._callcodecallcodecall_110_OOGMBeforeFiller.json | 150 ++++++++ ...callcodecallcodecall_110_SuicideEnd2Filler.json | 81 ++++ ..._callcodecallcodecall_110_SuicideEndFiller.json | 125 +++++++ ...lcodecallcodecall_110_SuicideMiddle2Filler.json | 92 +++++ ...llcodecallcodecall_110_SuicideMiddleFiller.json | 127 +++++++ ...callcodecallcodecall_ABCB_RECURSIVE2Filler.json | 113 ++++++ ..._callcodecallcodecall_ABCB_RECURSIVEFiller.json | 167 +++++++++ ...lcodecallcodecallcode_111_SuicideEndFiller.json | 133 +++++++ ...hatAskMoreGasThenTransactionProvidedFiller.json | 89 +++++ ...dontLeaveEmptyContractViaTransactionFiller.json | 69 ++++ .../static_log0_emptyMemFiller.json | 67 ++++ .../static_log0_logMemStartTooHighFiller.json | 66 ++++ .../static_log0_logMemsizeTooHighFiller.json | 66 ++++ .../static_log0_logMemsizeZeroFiller.json | 67 ++++ .../static_log0_nonEmptyMemFiller.json | 67 ++++ .../static_log0_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../static_log1_CallerFiller.json | 67 ++++ .../static_log1_MaxTopicFiller.json | 67 ++++ .../static_log1_emptyMemFiller.json | 67 ++++ .../static_log1_logMemStartTooHighFiller.json | 66 ++++ .../static_log1_logMemsizeTooHighFiller.json | 66 ++++ .../static_log1_logMemsizeZeroFiller.json | 67 ++++ .../static_log1_nonEmptyMemFiller.json | 67 ++++ .../static_log1_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../static_log2_CallerFiller.json | 67 ++++ .../static_log2_MaxTopicFiller.json | 67 ++++ .../static_log2_emptyMemFiller.json | 67 ++++ .../static_log2_logMemStartTooHighFiller.json | 66 ++++ .../static_log2_logMemsizeTooHighFiller.json | 66 ++++ .../static_log2_logMemsizeZeroFiller.json | 67 ++++ .../static_log2_nonEmptyMemFiller.json | 67 ++++ .../static_log2_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../static_log3_CallerFiller.json | 67 ++++ .../static_log3_MaxTopicFiller.json | 67 ++++ .../stStaticCallPending/static_log3_PCFiller.json | 67 ++++ .../static_log3_emptyMemFiller.json | 67 ++++ .../static_log3_logMemStartTooHighFiller.json | 66 ++++ .../static_log3_logMemsizeTooHighFiller.json | 66 ++++ .../static_log3_logMemsizeZeroFiller.json | 67 ++++ .../static_log3_nonEmptyMemFiller.json | 67 ++++ .../static_log3_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../static_log4_CallerFiller.json | 67 ++++ .../static_log4_MaxTopicFiller.json | 67 ++++ .../stStaticCallPending/static_log4_PCFiller.json | 67 ++++ .../static_log4_emptyMemFiller.json | 67 ++++ .../static_log4_logMemStartTooHighFiller.json | 66 ++++ .../static_log4_logMemsizeTooHighFiller.json | 66 ++++ .../static_log4_logMemsizeZeroFiller.json | 67 ++++ .../static_log4_nonEmptyMemFiller.json | 67 ++++ .../static_log4_nonEmptyMem_logMemSize1Filler.json | 67 ++++ ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ++++ .../static_logInOOG_CallFiller.json | 67 ++++ .../static_makeMoneyFiller.json | 82 ++++ .../static_refundSuicide50procentCapFiller.json | 110 ++++++ .../static_refund_CallAFiller.json | 110 ++++++ .../static_refund_CallA_OOGFiller.json | 82 ++++ ...atic_refund_CallA_notEnoughGasInCallFiller.json | 110 ++++++ ...static_refund_CallToSuicideNoStorageFiller.json | 101 +++++ .../static_refund_CallToSuicideStorageFiller.json | 105 ++++++ .../static_refund_CallToSuicideTwiceFiller.json | 108 ++++++ .../static_CALL_OneVCallSuicideFiller.json | 94 ----- .../static_CALL_ZeroVCallSuicideFiller.json | 94 ----- ...tic_CREATE_ContractSuicideDuringInitFiller.json | 86 ----- ...uicideDuringInit_ThenStoreThenReturnFiller.json | 106 ------ ..._ContractSuicideDuringInit_WithValueFiller.json | 86 ----- ...tSuicideDuringInit_WithValueToItselfFiller.json | 148 -------- ...TE_EContractCreateEContractInInit_TrFiller.json | 84 ----- ...ContractCreateNEContractInInitOOG_TrFiller.json | 115 ------ ...E_EContractCreateNEContractInInit_TrFiller.json | 90 ----- ...E_EContract_ThenCALLToNonExistentAccFiller.json | 121 ------ ...c_CREATE_EmptyContractAndCallIt_0weiFiller.json | 112 ------ ...c_CREATE_EmptyContractAndCallIt_1weiFiller.json | 115 ------ ...ptyContractWithStorageAndCallIt_0weiFiller.json | 135 ------- ...ptyContractWithStorageAndCallIt_1weiFiller.json | 114 ------ ...atic_CREATE_EmptyContractWithStorageFiller.json | 129 ------- ...empty000CreateinInitCode_TransactionFiller.json | 94 ----- ...ContractToCreateContractAndCallItOOGFiller.json | 124 ------- ...lContractToCreateContractOOGBonusGasFiller.json | 124 ------- ...atic_CallContractToCreateContractOOGFiller.json | 62 ---- ...ractWhichWouldCreateContractIfCalledFiller.json | 133 ------- .../stStaticCall/static_CallEcrecover0Filler.json | 62 ---- .../static_CallEcrecover0_0inputFiller.json | 60 --- .../static_CallEcrecover0_Gas2999Filler.json | 60 --- .../static_CallEcrecover0_NoGasFiller.json | 84 ----- ...c_CallEcrecover0_completeReturnValueFiller.json | 61 --- .../static_CallEcrecover0_gas3000Filler.json | 62 ---- ...allEcrecover0_overlappingInputOutputFiller.json | 62 ---- .../stStaticCall/static_CallEcrecover1Filler.json | 60 --- .../stStaticCall/static_CallEcrecover2Filler.json | 60 --- .../stStaticCall/static_CallEcrecover3Filler.json | 61 --- .../stStaticCall/static_CallEcrecover80Filler.json | 62 ---- .../static_CallEcrecoverCheckLengthFiller.json | 62 ---- ...tatic_CallEcrecoverCheckLengthWrongVFiller.json | 62 ---- .../static_CallEcrecoverH_prefixed0Filler.json | 62 ---- .../static_CallEcrecoverR_prefixed0Filler.json | 62 ---- .../static_CallEcrecoverS_prefixed0Filler.json | 62 ---- .../static_CallEcrecoverV_prefixed0Filler.json | 62 ---- .../static_CallGoesOOGOnSecondLevel2Filler.json | 105 ------ .../static_CallGoesOOGOnSecondLevelFiller.json | 106 ------ .../stStaticCall/static_CallIdentitiy_1Filler.json | 61 --- .../static_CallIdentity_1_nonzeroValueFiller.json | 64 ---- .../stStaticCall/static_CallIdentity_2Filler.json | 61 --- .../stStaticCall/static_CallIdentity_3Filler.json | 61 --- .../stStaticCall/static_CallIdentity_4Filler.json | 61 --- .../static_CallIdentity_4_gas17Filler.json | 61 --- .../static_CallIdentity_4_gas18Filler.json | 61 --- .../stStaticCall/static_CallIdentity_5Filler.json | 60 --- .../stStaticCall/static_CallLoseGasOOGFiller.json | 64 ---- .../static_CallRecursiveBomb0Filler.json | 90 ----- ...allRecursiveBomb0_OOG_atMaxCallDepthFiller.json | 77 ---- .../static_CallRecursiveBomb1Filler.json | 77 ---- .../static_CallRecursiveBomb2Filler.json | 77 ---- .../static_CallRecursiveBomb3Filler.json | 75 ---- .../static_CallRecursiveBombLog2Filler.json | 90 ----- .../static_CallRecursiveBombLogFiller.json | 90 ----- .../static_CallRecursiveBombPreCall2Filler.json | 67 ---- .../static_CallRecursiveBombPreCallFiller.json | 102 ----- .../stStaticCall/static_CallRipemd160_1Filler.json | 61 --- .../stStaticCall/static_CallRipemd160_2Filler.json | 61 --- .../stStaticCall/static_CallRipemd160_3Filler.json | 61 --- .../static_CallRipemd160_3_postfixed0Filler.json | 61 --- .../static_CallRipemd160_3_prefixed0Filler.json | 61 --- .../stStaticCall/static_CallRipemd160_4Filler.json | 61 --- .../static_CallRipemd160_4_gas719Filler.json | 60 --- .../stStaticCall/static_CallRipemd160_5Filler.json | 60 --- .../stStaticCall/static_CallSha256_1Filler.json | 61 --- .../static_CallSha256_1_nonzeroValueFiller.json | 64 ---- .../stStaticCall/static_CallSha256_2Filler.json | 61 --- .../stStaticCall/static_CallSha256_3Filler.json | 61 --- .../static_CallSha256_3_postfix0Filler.json | 61 --- .../static_CallSha256_3_prefix0Filler.json | 61 --- .../stStaticCall/static_CallSha256_4Filler.json | 61 --- .../static_CallSha256_4_gas99Filler.json | 61 --- .../stStaticCall/static_CallSha256_5Filler.json | 60 --- .../static_CallToNameRegistrator0Filler.json | 68 ---- ...llToNameRegistratorAddressTooBigLeftFiller.json | 67 ---- ...lToNameRegistratorAddressTooBigRightFiller.json | 68 ---- ...istratorMemOOGAndInsufficientBalanceFiller.json | 67 ---- ..._CallToNameRegistratorNotMuchMemory0Filler.json | 67 ---- ..._CallToNameRegistratorNotMuchMemory1Filler.json | 67 ---- ...static_CallToNameRegistratorOutOfGasFiller.json | 67 ---- ..._CallToNameRegistratorTooMuchMemory0Filler.json | 67 ---- ..._CallToNameRegistratorTooMuchMemory1Filler.json | 67 ---- ..._CallToNameRegistratorTooMuchMemory2Filler.json | 67 ---- ...oNameRegistratorZeorSizeMemExpansionFiller.json | 67 ---- .../stStaticCall/static_CallToReturn1Filler.json | 67 ---- .../stStaticCall/static_CalltoReturn2Filler.json | 68 ---- ...CallThatAskForeGasThenTrabsactionHasFiller.json | 83 ----- .../static_InternalCallHittingGasLimit2Filler.json | 67 ---- .../static_InternalCallHittingGasLimitFiller.json | 67 ---- ...c_InternalCallHittingGasLimitSuccessFiller.json | 68 ---- .../static_InternlCallStoreClearsOOGFiller.json | 94 ----- .../static_InternlCallStoreClearsSuccesFiller.json | 84 ----- .../static_LoopCallsDepthThenRevert2Filler.json | 61 --- .../static_LoopCallsDepthThenRevert3Filler.json | 65 ---- .../static_LoopCallsDepthThenRevertFiller.json | 94 ----- .../static_LoopCallsThenRevertFiller.json | 114 ------ .../static_NewGasPriceForCodesFiller.json | 154 -------- .../static_NonZeroValue_CALL2Filler.json | 88 ----- .../static_NonZeroValue_CALL_ToEmptyFiller.json | 113 ------ ...onZeroValue_CALL_ToNonNonZeroBalanceFiller.json | 91 ----- ...ic_NonZeroValue_CALL_ToOneStorageKeyFiller.json | 123 ------ .../stStaticCall/static_PostToReturn1Filler.json | 68 ---- .../stStaticCall/static_RETURN_BoundsFiller.json | 183 --------- .../static_RETURN_BoundsOOGFiller.json | 172 --------- .../stStaticCall/static_RawCallGasAskFiller.json | 95 ----- .../stStaticCall/static_RawCallGasFiller.json | 95 ----- .../static_RawCallGasValueTransferAskFiller.json | 95 ----- .../static_RawCallGasValueTransferFiller.json | 95 ----- ...tic_RawCallGasValueTransferMemoryAskFiller.json | 95 ----- ...static_RawCallGasValueTransferMemoryFiller.json | 95 ----- .../static_RawCallMemoryGasAskFiller.json | 95 ----- .../static_RawCallMemoryGasFiller.json | 95 ----- .../stStaticCall/static_Return50000Filler.json | 90 ----- .../stStaticCall/static_Return50000_2Filler.json | 90 ----- .../stStaticCall/static_ReturnTest2Filler.json | 68 ---- .../stStaticCall/static_ReturnTestFiller.json | 67 ---- .../stStaticCall/static_RevertDepth2Filler.json | 106 ------ ...ic_RevertDepthCreateAddressCollisionFiller.json | 222 ----------- .../static_RevertDepthCreateOOGFiller.json | 178 --------- .../static_RevertOpcodeCallsFiller.json | 299 --------------- .../static_RevertOpcodeDirectCallFiller.json | 116 ------ .../static_RevertOpcodeMultipleSubCallsFiller.json | 412 --------------------- .../static_RevertOpcodeReturnFiller.json | 157 -------- .../static_RevertPrecompiledTouchFiller.json | 135 ------- .../static_RevertPrefoundCallFiller.json | 105 ------ .../static_RevertPrefoundCallOOGFiller.json | 71 ---- .../static_RevertPrefoundEmptyCallFiller.json | 101 ----- .../static_RevertPrefoundEmptyCallOOGFiller.json | 71 ---- ...reClearsAndInternlCallStoreClearsOOGFiller.json | 101 ----- ...earsAndInternlCallStoreClearsSuccessFiller.json | 89 ----- .../static_SuicideToExistingContractFiller.json | 91 ----- .../static_SuicideToNotExistingContractFiller.json | 109 ------ ...ernlCallSuicidesBonusGasAtCallFailedFiller.json | 66 ---- ...AndInternlCallSuicidesBonusGasAtCallFiller.json | 84 ----- ...ic_SuicidesAndInternlCallSuicidesOOGFiller.json | 72 ---- ...uicidesAndInternlCallSuicidesSuccessFiller.json | 82 ---- .../static_SuicidesStopAfterSuicideFiller.json | 73 ---- .../static_TouchToEmptyAccountRevert2Filler.json | 77 ---- .../static_TouchToEmptyAccountRevert3Filler.json | 91 ----- .../static_TouchToEmptyAccountRevertFiller.json | 77 ---- .../static_Transaction64Rule_d64e0Filler.json | 75 ---- .../static_Transaction64Rule_d64m1Filler.json | 96 ----- .../static_Transaction64Rule_d64p1Filler.json | 76 ---- .../stStaticCall/static_ZeroValue_CALL2Filler.json | 67 ---- .../static_ZeroValue_CALL_OOGRevertFiller.json | 69 ---- .../static_ZeroValue_CALL_ToEmpty2Filler.json | 74 ---- ...tic_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json | 76 ---- ...tic_ZeroValue_CALL_ToNonZeroBalance2Filler.json | 74 ---- ...alue_CALL_ToNonZeroBalance_OOGRevertFiller.json | 76 ---- ...atic_ZeroValue_CALL_ToOneStorageKey2Filler.json | 95 ----- ...Value_CALL_ToOneStorageKey_OOGRevertFiller.json | 77 ---- .../static_ZeroValue_SUICIDE_OOGRevertFiller.json | 72 ---- ..._ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json | 79 ---- ...e_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json | 79 ---- ...ue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json | 82 ---- .../stStaticCall/static_callOutput1Filler.json | 63 ---- .../stStaticCall/static_callOutput2Filler.json | 63 ---- .../stStaticCall/static_callOutput3FailFiller.json | 63 ---- .../stStaticCall/static_callOutput3Filler.json | 63 ---- .../static_callOutput3partialFailFiller.json | 63 ---- .../static_callOutput3partialFiller.json | 63 ---- .../static_callWithHighValueAndGasOOGFiller.json | 62 ---- ...tic_callWithHighValueAndOOGatTxLevelFiller.json | 78 ---- .../static_callWithHighValueFiller.json | 62 ---- .../static_callWithHighValueOOGinCallFiller.json | 86 ----- .../static_call_OOG_additionalGasCosts1Filler.json | 73 ---- .../static_call_OOG_additionalGasCosts2Filler.json | 65 ---- .../static_callcall_00_SuicideEndFiller.json | 2 +- .../static_callcallcallcode_001_2Filler.json | 4 +- .../stStaticCall/static_callcallcode_01Filler.json | 92 ----- .../static_callcallcode_01_2Filler.json | 74 +++- .../static_callcallcode_01_OOGEFiller.json | 87 ----- .../static_callcallcode_01_OOGE_2Filler.json | 40 +- .../static_callcallcode_01_SuicideEnd2Filler.json | 15 +- .../static_callcallcode_01_SuicideEndFiller.json | 8 +- .../static_callcallcodecall_010Filler.json | 36 +- .../static_callcallcodecall_010_2Filler.json | 48 ++- .../static_callcallcodecall_010_OOGEFiller.json | 46 +-- .../static_callcallcodecall_010_OOGE_2Filler.json | 47 +-- ...atic_callcallcodecall_010_OOGMAfter2Filler.json | 43 +-- ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 108 ------ ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 105 ------ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 102 ----- ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 101 ----- ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 108 ------ ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 85 ----- ...atic_callcallcodecall_010_SuicideEndFiller.json | 97 ----- ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 ----- ...c_callcallcodecall_010_SuicideMiddleFiller.json | 97 ----- ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 86 ----- ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 90 ----- .../static_callcallcodecallcode_011Filler.json | 98 ----- .../static_callcallcodecallcode_011_2Filler.json | 86 ----- ...static_callcallcodecallcode_011_OOGEFiller.json | 106 ------ ...atic_callcallcodecallcode_011_OOGE_2Filler.json | 99 ----- ..._callcallcodecallcode_011_OOGMAfter2Filler.json | 98 ----- ...c_callcallcodecallcode_011_OOGMAfterFiller.json | 108 ------ ...callcallcodecallcode_011_OOGMAfter_1Filler.json | 105 ------ ...callcallcodecallcode_011_OOGMAfter_2Filler.json | 100 ----- ...callcallcodecallcode_011_OOGMBefore2Filler.json | 98 ----- ..._callcallcodecallcode_011_OOGMBeforeFiller.json | 150 -------- ...callcallcodecallcode_011_SuicideEnd2Filler.json | 80 ---- ..._callcallcodecallcode_011_SuicideEndFiller.json | 135 ------- ...lcallcodecallcode_011_SuicideMiddle2Filler.json | 94 ----- ...llcallcodecallcode_011_SuicideMiddleFiller.json | 112 ------ ...callcallcodecallcode_ABCB_RECURSIVE2Filler.json | 113 ------ ..._callcallcodecallcode_ABCB_RECURSIVEFiller.json | 152 -------- .../static_callcode_checkPCFiller.json | 61 --- .../stStaticCall/static_callcodecall_10Filler.json | 115 ------ .../static_callcodecall_10_2Filler.json | 83 ----- .../static_callcodecall_10_OOGEFiller.json | 123 ------ .../static_callcodecall_10_OOGE_2Filler.json | 84 ----- .../static_callcodecall_10_SuicideEnd2Filler.json | 78 ---- .../static_callcodecall_10_SuicideEndFiller.json | 108 ------ .../static_callcodecallcall_100Filler.json | 134 ------- .../static_callcodecallcall_100_2Filler.json | 95 ----- .../static_callcodecallcall_100_OOGE2Filler.json | 99 ----- .../static_callcodecallcall_100_OOGEFiller.json | 148 -------- ...atic_callcodecallcall_100_OOGMAfter2Filler.json | 132 ------- ...tatic_callcodecallcall_100_OOGMAfterFiller.json | 150 -------- ...tic_callcodecallcall_100_OOGMAfter_2Filler.json | 147 -------- ...tic_callcodecallcall_100_OOGMAfter_3Filler.json | 133 ------- ...tic_callcodecallcall_100_OOGMBefore2Filler.json | 104 ------ ...atic_callcodecallcall_100_OOGMBeforeFiller.json | 150 -------- ...tic_callcodecallcall_100_SuicideEnd2Filler.json | 91 ----- ...atic_callcodecallcall_100_SuicideEndFiller.json | 139 ------- ..._callcodecallcall_100_SuicideMiddle2Filler.json | 85 ----- ...c_callcodecallcall_100_SuicideMiddleFiller.json | 127 ------- ...tic_callcodecallcall_ABCB_RECURSIVE2Filler.json | 113 ------ ...atic_callcodecallcall_ABCB_RECURSIVEFiller.json | 167 --------- .../static_callcodecallcallcode_101Filler.json | 152 -------- .../static_callcodecallcallcode_101_2Filler.json | 91 ----- ...static_callcodecallcallcode_101_OOGEFiller.json | 148 -------- ...atic_callcodecallcallcode_101_OOGE_2Filler.json | 99 ----- ..._callcodecallcallcode_101_OOGMAfter2Filler.json | 136 ------- ...c_callcodecallcallcode_101_OOGMAfterFiller.json | 150 -------- ...callcodecallcallcode_101_OOGMAfter_1Filler.json | 131 ------- ...callcodecallcallcode_101_OOGMAfter_3Filler.json | 147 -------- ...callcodecallcallcode_101_OOGMBefore2Filler.json | 101 ----- ..._callcodecallcallcode_101_OOGMBeforeFiller.json | 150 -------- ...callcodecallcallcode_101_SuicideEnd2Filler.json | 84 ----- ..._callcodecallcallcode_101_SuicideEndFiller.json | 143 ------- ...lcodecallcallcode_101_SuicideMiddle2Filler.json | 93 ----- ...llcodecallcallcode_101_SuicideMiddleFiller.json | 127 ------- ...callcodecallcallcode_ABCB_RECURSIVE2Filler.json | 113 ------ ..._callcodecallcallcode_ABCB_RECURSIVEFiller.json | 167 --------- .../static_callcodecallcodecall_1102Filler.json | 91 ----- .../static_callcodecallcodecall_110Filler.json | 140 ------- .../static_callcodecallcodecall_110_2Filler.json | 91 ----- ...tatic_callcodecallcodecall_110_OOGE2Filler.json | 100 ----- ...static_callcodecallcodecall_110_OOGEFiller.json | 150 -------- ..._callcodecallcodecall_110_OOGMAfter2Filler.json | 136 ------- ...c_callcodecallcodecall_110_OOGMAfterFiller.json | 150 -------- ...callcodecallcodecall_110_OOGMAfter_2Filler.json | 147 -------- ...callcodecallcodecall_110_OOGMAfter_3Filler.json | 141 ------- ...callcodecallcodecall_110_OOGMBefore2Filler.json | 102 ----- ..._callcodecallcodecall_110_OOGMBeforeFiller.json | 150 -------- ...callcodecallcodecall_110_SuicideEnd2Filler.json | 81 ---- ..._callcodecallcodecall_110_SuicideEndFiller.json | 125 ------- ...lcodecallcodecall_110_SuicideMiddle2Filler.json | 92 ----- ...llcodecallcodecall_110_SuicideMiddleFiller.json | 127 ------- ...callcodecallcodecall_ABCB_RECURSIVE2Filler.json | 113 ------ ..._callcodecallcodecall_ABCB_RECURSIVEFiller.json | 167 --------- ...lcodecallcodecallcode_111_SuicideEndFiller.json | 133 ------- .../stStaticCall/static_calldelcode_01Filler.json | 75 ++++ .../static_calldelcode_01_OOGEFiller.json | 83 +++++ ...hatAskMoreGasThenTransactionProvidedFiller.json | 89 ----- ...dontLeaveEmptyContractViaTransactionFiller.json | 69 ---- .../stStaticCall/static_log0_emptyMemFiller.json | 67 ---- .../static_log0_logMemStartTooHighFiller.json | 66 ---- .../static_log0_logMemsizeTooHighFiller.json | 66 ---- .../static_log0_logMemsizeZeroFiller.json | 67 ---- .../static_log0_nonEmptyMemFiller.json | 67 ---- .../static_log0_nonEmptyMem_logMemSize1Filler.json | 67 ---- ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ---- .../stStaticCall/static_log1_CallerFiller.json | 67 ---- .../stStaticCall/static_log1_MaxTopicFiller.json | 67 ---- .../stStaticCall/static_log1_emptyMemFiller.json | 67 ---- .../static_log1_logMemStartTooHighFiller.json | 66 ---- .../static_log1_logMemsizeTooHighFiller.json | 66 ---- .../static_log1_logMemsizeZeroFiller.json | 67 ---- .../static_log1_nonEmptyMemFiller.json | 67 ---- .../static_log1_nonEmptyMem_logMemSize1Filler.json | 67 ---- ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ---- .../stStaticCall/static_log2_CallerFiller.json | 67 ---- .../stStaticCall/static_log2_MaxTopicFiller.json | 67 ---- .../stStaticCall/static_log2_emptyMemFiller.json | 67 ---- .../static_log2_logMemStartTooHighFiller.json | 66 ---- .../static_log2_logMemsizeTooHighFiller.json | 66 ---- .../static_log2_logMemsizeZeroFiller.json | 67 ---- .../static_log2_nonEmptyMemFiller.json | 67 ---- .../static_log2_nonEmptyMem_logMemSize1Filler.json | 67 ---- ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ---- .../stStaticCall/static_log3_CallerFiller.json | 67 ---- .../stStaticCall/static_log3_MaxTopicFiller.json | 67 ---- .../stStaticCall/static_log3_PCFiller.json | 67 ---- .../stStaticCall/static_log3_emptyMemFiller.json | 67 ---- .../static_log3_logMemStartTooHighFiller.json | 66 ---- .../static_log3_logMemsizeTooHighFiller.json | 66 ---- .../static_log3_logMemsizeZeroFiller.json | 67 ---- .../static_log3_nonEmptyMemFiller.json | 67 ---- .../static_log3_nonEmptyMem_logMemSize1Filler.json | 67 ---- ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ---- .../stStaticCall/static_log4_CallerFiller.json | 67 ---- .../stStaticCall/static_log4_MaxTopicFiller.json | 67 ---- .../stStaticCall/static_log4_PCFiller.json | 67 ---- .../stStaticCall/static_log4_emptyMemFiller.json | 67 ---- .../static_log4_logMemStartTooHighFiller.json | 66 ---- .../static_log4_logMemsizeTooHighFiller.json | 66 ---- .../static_log4_logMemsizeZeroFiller.json | 67 ---- .../static_log4_nonEmptyMemFiller.json | 67 ---- .../static_log4_nonEmptyMem_logMemSize1Filler.json | 67 ---- ...onEmptyMem_logMemSize1_logMemStart31Filler.json | 67 ---- .../stStaticCall/static_logInOOG_CallFiller.json | 67 ---- .../stStaticCall/static_makeMoneyFiller.json | 82 ---- .../static_refundSuicide50procentCapFiller.json | 110 ------ .../stStaticCall/static_refund_CallAFiller.json | 110 ------ .../static_refund_CallA_OOGFiller.json | 82 ---- ...atic_refund_CallA_notEnoughGasInCallFiller.json | 110 ------ ...static_refund_CallToSuicideNoStorageFiller.json | 101 ----- .../static_refund_CallToSuicideStorageFiller.json | 105 ------ .../static_refund_CallToSuicideTwiceFiller.json | 108 ------ 631 files changed, 28575 insertions(+), 28623 deletions(-) create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_OneVCallSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_ZeroVCallSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInitFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateEContractInInit_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInit_TrFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_0weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_1weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_empty000CreateinInitCode_TransactionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractAndCallItOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGBonusGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_0inputFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_Gas2999Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_NoGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_completeReturnValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_gas3000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_overlappingInputOutputFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover80Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthWrongVFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverH_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverR_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverS_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverV_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevel2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevelFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentitiy_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_1_nonzeroValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas17Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas18Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallLoseGasOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLog2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLogFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCall2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_postfixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_prefixed0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4_gas719Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1_nonzeroValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_postfix0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_prefix0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4_gas99Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_5Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistrator0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigLeftFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigRightFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorOutOfGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToReturn1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CalltoReturn2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimit2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsSuccesFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsThenRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NewGasPriceForCodesFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToEmptyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_PostToReturn1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasAskFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTest2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTestFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepth2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateAddressCollisionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeDirectCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeMultipleSubCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeReturnFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrecompiledTouchFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToExistingContractFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToNotExistingContractFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesSuccessFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesStopAfterSuicideFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64e0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64m1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64p1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3FailFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFailFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndGasOOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndOOGatTxLevelFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueOOGinCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcode_checkPCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_1102Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecallcode_111_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_PCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_CallerFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_MaxTopicFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_PCFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_emptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemStartTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeTooHighFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeZeroFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMemFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_logInOOG_CallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_makeMoneyFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refundSuicide50procentCapFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallAFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_OOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_notEnoughGasInCallFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideNoStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideStorageFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideTwiceFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_OneVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_OneVCallSuicideFiller.json new file mode 100644 index 000000000..5eef4df16 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_OneVCallSuicideFiller.json @@ -0,0 +1,94 @@ +{ + "static_CALL_OneVCallSuicide" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085707" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x64", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x086d23" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_ZeroVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_ZeroVCallSuicideFiller.json new file mode 100644 index 000000000..58794e85f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CALL_ZeroVCallSuicideFiller.json @@ -0,0 +1,94 @@ +{ + "static_CALL_ZeroVCallSuicide" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x087133" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08874f" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInitFiller.json new file mode 100644 index 000000000..600c3f2dd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInitFiller.json @@ -0,0 +1,86 @@ +{ + "static_CREATE_ContractSuicideDuringInit" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json new file mode 100644 index 000000000..97e900424 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json @@ -0,0 +1,106 @@ +{ + "static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{ (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b) (STATICCALL 60000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]]11 (RETURN 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600b600055600e6012f3" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json new file mode 100644 index 000000000..fb8609699 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json @@ -0,0 +1,86 @@ +{ + "static_CREATE_ContractSuicideDuringInit_WithValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json new file mode 100644 index 000000000..ae229557f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json @@ -0,0 +1,148 @@ +{ + "static_CREATE_ContractSuicideDuringInit_WithValueToItself" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xe808" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a427ee" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "22870" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999977120" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "53740" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999946250" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "59400" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999940590" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0x6295ee1b4f6dd65047762f924ecd367c17eabf8f)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052736295ee1b4f6dd65047762f924ecd367c17eabf8fff" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateEContractInInit_TrFiller.json new file mode 100644 index 000000000..fbf25acf5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateEContractInInit_TrFiller.json @@ -0,0 +1,84 @@ +{ + "static_CREATE_EContractCreateEContractInInit_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 32) }", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150602060006000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json new file mode 100644 index 000000000..4e5e74b39 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json @@ -0,0 +1,115 @@ +{ + "static_CREATE_EContractCreateNEContractInInitOOG_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0", + "code" : "0x600c600055", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" + ], + "gasLimit" : [ + "160000", "60000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInit_TrFiller.json new file mode 100644 index 000000000..c7553b303 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContractCreateNEContractInInit_TrFiller.json @@ -0,0 +1,90 @@ +{ + "static_CREATE_EContractCreateNEContractInInit_Tr" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "64e2ebd6405af8cb348aec519084d3fff42ebba6" : { + "code" : "0x600c600055" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "code" : "0x600c600055" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json new file mode 100644 index 000000000..b791d2154 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json @@ -0,0 +1,121 @@ +{ + "static_CREATE_EContract_ThenCALLToNonExistentAcc" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071d49" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06be35" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06bba1" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 0xe1ecf98489fa9ed60a664fc4998db699cfa39d40 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_0weiFiller.json new file mode 100644 index 000000000..07724e9a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_0weiFiller.json @@ -0,0 +1,112 @@ +{ + "static_CREATE_EmptyContractAndCallIt_0wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071fab" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_1weiFiller.json new file mode 100644 index 000000000..beaf5735d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractAndCallIt_1weiFiller.json @@ -0,0 +1,115 @@ +{ + "static_CREATE_EmptyContractAndCallIt_1wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x01" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x07057f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]](STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json new file mode 100644 index 000000000..7248d21e7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json @@ -0,0 +1,135 @@ +{ + "static_CREATE_EmptyContractWithStorageAndCallIt_0wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x06830d" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json new file mode 100644 index 000000000..3b2a2b7a4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json @@ -0,0 +1,114 @@ +{ + "static_CREATE_EmptyContractWithStorageAndCallIt_1wei" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x066323" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x0668e1" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageFiller.json new file mode 100644 index 000000000..2a9aa2cde --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_EmptyContractWithStorageFiller.json @@ -0,0 +1,129 @@ +{ + "static_CREATE_EmptyContractWithStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071fc4" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_empty000CreateinInitCode_TransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_empty000CreateinInitCode_TransactionFiller.json new file mode 100644 index 000000000..fa5d1370a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CREATE_empty000CreateinInitCode_TransactionFiller.json @@ -0,0 +1,94 @@ +{ + "static_CREATE_empty000CreateinInitCode_Transaction" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "This indicates that a call from transaction was initiated", + "code" : "{[[1]]12}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 0) }", + "data" : [ + "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600060006000f0" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractAndCallItOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractAndCallItOOGFiller.json new file mode 100644 index 000000000..c16b00166 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractAndCallItOOGFiller.json @@ -0,0 +1,124 @@ +{ + "static_CallContractToCreateContractAndCallItOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 1000 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "203000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGBonusGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGBonusGasFiller.json new file mode 100644 index 000000000..4df215de1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGBonusGasFiller.json @@ -0,0 +1,124 @@ +{ + "static_CallContractToCreateContractOOGBonusGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "112", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 12 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGFiller.json new file mode 100644 index 000000000..f3dfa7a71 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractOOGFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallContractToCreateContractOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "0", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json new file mode 100644 index 000000000..eae0cbbb6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json @@ -0,0 +1,133 @@ +{ + "static_CallContractToCreateContractWhichWouldCreateContractIfCalled" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "2", + "storage" : { + "0x" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 50000 (SLOAD 0) 1 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00" + ], + "gasLimit" : [ + "20000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0Filler.json new file mode 100644 index 000000000..ccc1d53f6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_0inputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_0inputFiller.json new file mode 100644 index 000000000..4369d8b00 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_0inputFiller.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover0_0input" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_Gas2999Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_Gas2999Filler.json new file mode 100644 index 000000000..1a9492456 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_Gas2999Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover0_Gas2999" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_NoGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_NoGasFiller.json new file mode 100644 index 000000000..f674bab76 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_NoGasFiller.json @@ -0,0 +1,84 @@ +{ + "static_CallEcrecover0_NoGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70216" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71026" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71066" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_completeReturnValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_completeReturnValueFiller.json new file mode 100644 index 000000000..77b284ff3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_completeReturnValueFiller.json @@ -0,0 +1,61 @@ +{ + "static_CallEcrecover0_completeReturnValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_gas3000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_gas3000Filler.json new file mode 100644 index 000000000..c34a26e1d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_gas3000Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0_gas3000" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_overlappingInputOutputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_overlappingInputOutputFiller.json new file mode 100644 index 000000000..b8a55364f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover0_overlappingInputOutputFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover0_overlappingInputOutput" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover1Filler.json new file mode 100644 index 000000000..57c9c4159 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover1Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover2Filler.json new file mode 100644 index 000000000..69777a439 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover2Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallEcrecover2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover3Filler.json new file mode 100644 index 000000000..4403fa29d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallEcrecover3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover80Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover80Filler.json new file mode 100644 index 000000000..d7945388e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecover80Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecover80" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthFiller.json new file mode 100644 index 000000000..93a97a505 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverCheckLength" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0xa0", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthWrongVFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthWrongVFiller.json new file mode 100644 index 000000000..0340cdc8b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverCheckLengthWrongVFiller.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverCheckLengthWrongV" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x1122334455667788990011223344556677889900112233445566778899001122", + "0x01" : "0xa0", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverH_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverH_prefixed0Filler.json new file mode 100644 index 000000000..adaeb1c88 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverH_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverH_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverR_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverR_prefixed0Filler.json new file mode 100644 index 000000000..1967fa87a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverR_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverR_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverS_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverS_prefixed0Filler.json new file mode 100644 index 000000000..7c133de91 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverS_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverS_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverV_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverV_prefixed0Filler.json new file mode 100644 index 000000000..b9c9d5719 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallEcrecoverV_prefixed0Filler.json @@ -0,0 +1,62 @@ +{ + "static_CallEcrecoverV_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3652240" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevel2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevel2Filler.json new file mode 100644 index 000000000..64fb1bd1f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevel2Filler.json @@ -0,0 +1,105 @@ +{ + "static_CallGoesOOGOnSecondLevel2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "OOG Call transaction has less gas then in example above", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000113 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000113" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000114 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000114" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevelFiller.json new file mode 100644 index 000000000..c1c4080a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallGoesOOGOnSecondLevelFiller.json @@ -0,0 +1,106 @@ +{ + "static_CallGoesOOGOnSecondLevel" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "OOG Call because call goes OOG on second level", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000110 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000110" : { + "balance" : "0", + "nonce" : "0", + "code" : "Inner CaLL goes OOG on EIP150", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000111 0 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000111" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 8 (GAS)) (CREATE 0 0 0) (CREATE 0 0 0) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "220000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentitiy_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentitiy_1Filler.json new file mode 100644 index 000000000..18932500e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentitiy_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentitiy_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 4 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_1_nonzeroValueFiller.json new file mode 100644 index 000000000..a78675055 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_1_nonzeroValueFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallIdentity_1_nonzeroValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000004" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 4 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_2Filler.json new file mode 100644 index 000000000..4cacd8395 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_3Filler.json new file mode 100644 index 000000000..2a955f097 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4Filler.json new file mode 100644 index 000000000..9988f244a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas17Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas17Filler.json new file mode 100644 index 000000000..cba3e65a7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas17Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4_gas17" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 17 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas18Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas18Filler.json new file mode 100644 index 000000000..ef8f874e1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_4_gas18Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallIdentity_4_gas18" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 18 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_5Filler.json new file mode 100644 index 000000000..35c6e6aa4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallIdentity_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallIdentity_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 4 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallLoseGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallLoseGasOOGFiller.json new file mode 100644 index 000000000..75955185e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallLoseGasOOGFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallLoseGasOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7fffffffffffffff" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0Filler.json new file mode 100644 index 000000000..1d524a05b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0Filler.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBomb0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x011b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 11000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json new file mode 100644 index 000000000..240f958c7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb0_OOG_atMaxCallDepth" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x02c1", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (STATICCALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb1Filler.json new file mode 100644 index 000000000..b6911f4d9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb1Filler.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "20622100" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb2Filler.json new file mode 100644 index 000000000..5e62952e4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb2Filler.json @@ -0,0 +1,77 @@ +{ + "static_CallRecursiveBomb2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "20622099" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb3Filler.json new file mode 100644 index 000000000..4c058cf4a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBomb3Filler.json @@ -0,0 +1,75 @@ +{ + "static_CallRecursiveBomb3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x08", + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLog2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLog2Filler.json new file mode 100644 index 000000000..88bb7ebe2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLog2Filler.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBombLog2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLogFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLogFiller.json new file mode 100644 index 000000000..2e71fb0e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombLogFiller.json @@ -0,0 +1,90 @@ +{ + "static_CallRecursiveBombLog" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCall2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCall2Filler.json new file mode 100644 index 000000000..f9363a751 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCall2Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallRecursiveBombPreCall2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (STATICCALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCallFiller.json new file mode 100644 index 000000000..47c006979 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRecursiveBombPreCallFiller.json @@ -0,0 +1,102 @@ +{ + "static_CallRecursiveBombPreCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x03ff", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_1Filler.json new file mode 100644 index 000000000..a1ea7b7f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_2Filler.json new file mode 100644 index 000000000..2398a9e5e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3Filler.json new file mode 100644 index 000000000..ca693e8f3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_postfixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_postfixed0Filler.json new file mode 100644 index 000000000..4569fdbf9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_postfixed0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3_postfixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_prefixed0Filler.json new file mode 100644 index 000000000..1efae3d19 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_3_prefixed0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_3_prefixed0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4Filler.json new file mode 100644 index 000000000..43ddff295 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallRipemd160_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4_gas719Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4_gas719Filler.json new file mode 100644 index 000000000..1b6fe0b68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_4_gas719Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallRipemd160_4_gas719" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_5Filler.json new file mode 100644 index 000000000..00a426ae2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallRipemd160_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallRipemd160_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1Filler.json new file mode 100644 index 000000000..fc2835a96 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1_nonzeroValueFiller.json new file mode 100644 index 000000000..972831d81 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_1_nonzeroValueFiller.json @@ -0,0 +1,64 @@ +{ + "static_CallSha256_1_nonzeroValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000002" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_2Filler.json new file mode 100644 index 000000000..537742d43 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_2Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3Filler.json new file mode 100644 index 000000000..bbfeb4f0f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_postfix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_postfix0Filler.json new file mode 100644 index 000000000..b6069d283 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_postfix0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3_postfix0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_prefix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_prefix0Filler.json new file mode 100644 index 000000000..0b5f19f68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_3_prefix0Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_3_prefix0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4Filler.json new file mode 100644 index 000000000..dd39770c1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_4" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4_gas99Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4_gas99Filler.json new file mode 100644 index 000000000..0df5e39b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_4_gas99Filler.json @@ -0,0 +1,61 @@ +{ + "static_CallSha256_4_gas99" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "365224" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_5Filler.json new file mode 100644 index 000000000..158feec90 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallSha256_5Filler.json @@ -0,0 +1,60 @@ +{ + "static_CallSha256_5" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistrator0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistrator0Filler.json new file mode 100644 index 000000000..75e01a3d3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistrator0Filler.json @@ -0,0 +1,68 @@ +{ + "static_CallToNameRegistrator0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigLeftFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigLeftFiller.json new file mode 100644 index 000000000..e46c436e3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigLeftFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorAddressTooBigLeft" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigRightFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigRightFiller.json new file mode 100644 index 000000000..6dd4fe67e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorAddressTooBigRightFiller.json @@ -0,0 +1,68 @@ +{ + "static_CallToNameRegistratorAddressTooBigRight" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json new file mode 100644 index 000000000..5152cc62f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorMemOOGAndInsufficientBalance" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0xffffffffffff 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory0Filler.json new file mode 100644 index 000000000..42ef2c20f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory0Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorNotMuchMemory0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory1Filler.json new file mode 100644 index 000000000..85994c211 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorNotMuchMemory1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorNotMuchMemory1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorOutOfGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorOutOfGasFiller.json new file mode 100644 index 000000000..ddd611c2b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorOutOfGasFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorOutOfGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory0Filler.json new file mode 100644 index 000000000..6e528c503 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory0Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory1Filler.json new file mode 100644 index 000000000..e241cb636 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory2Filler.json new file mode 100644 index 000000000..25fa677a1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorTooMuchMemory2Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorTooMuchMemory2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json new file mode 100644 index 000000000..c836df8a0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json @@ -0,0 +1,67 @@ +{ + "static_CallToNameRegistratorZeorSizeMemExpansion" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToReturn1Filler.json new file mode 100644 index 000000000..f621d4283 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CallToReturn1Filler.json @@ -0,0 +1,67 @@ +{ + "static_CallToReturn1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 31 1) [[ 1 ]] @0 }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155602a601f536001601ff3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CalltoReturn2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CalltoReturn2Filler.json new file mode 100644 index 000000000..fe07ae803 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_CalltoReturn2Filler.json @@ -0,0 +1,68 @@ +{ + "static_CalltoReturn2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 5000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f2", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json new file mode 100644 index 000000000..f1042c54d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json @@ -0,0 +1,83 @@ +{ + "static_ExecuteCallThatAskForeGasThenTrabsactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 600000 0x1000000000000000000000000000000000000001 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ [[1]] 12 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimit2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimit2Filler.json new file mode 100644 index 000000000..4f275d409 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimit2Filler.json @@ -0,0 +1,67 @@ +{ + "static_InternalCallHittingGasLimit2" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "47766", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "47766" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitFiller.json new file mode 100644 index 000000000..f097c8d68 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitFiller.json @@ -0,0 +1,67 @@ +{ + "static_InternalCallHittingGasLimit" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "22000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "{ (STATICCALL 5000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "21100" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitSuccessFiller.json new file mode 100644 index 000000000..114b829b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternalCallHittingGasLimitSuccessFiller.json @@ -0,0 +1,68 @@ +{ + "static_InternalCallHittingGasLimitSuccess" : { + "env" : { + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "220000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x01" : "0x37" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsOOGFiller.json new file mode 100644 index 000000000..99233eefc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsOOGFiller.json @@ -0,0 +1,94 @@ +{ + "static_InternlCallStoreClearsOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (STATICCALL 40000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsSuccesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsSuccesFiller.json new file mode 100644 index 000000000..85d7dfff2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_InternlCallStoreClearsSuccesFiller.json @@ -0,0 +1,84 @@ +{ + "static_InternlCallStoreClearsSucces" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (STATICCALL 100000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert2Filler.json new file mode 100644 index 000000000..ee9372be4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert2Filler.json @@ -0,0 +1,61 @@ +{ + "static_LoopCallsDepthThenRevert2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x03", + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "create in init code on depth = 1024. account should not be created", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1023)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert3Filler.json new file mode 100644 index 000000000..584268c12 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevert3Filler.json @@ -0,0 +1,65 @@ +{ + "static_LoopCallsDepthThenRevert3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x01", + "nonce" : "0x02" + }, + "cd6807039caffddbd1c28a749ec91bef15f448e5" : { + "balance" : "0x02", + "nonce" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "create in init code on depth = 1023. account would be created", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1022)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevertFiller.json new file mode 100644 index 000000000..b5ba25866 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsDepthThenRevertFiller.json @@ -0,0 +1,94 @@ +{ + "static_LoopCallsDepthThenRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999990000000" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsThenRevertFiller.json new file mode 100644 index 000000000..2e4dd1720 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_LoopCallsThenRevertFiller.json @@ -0,0 +1,114 @@ +{ + "static_LoopCallsThenRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Homestead", "Frontier"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (JUMPDEST) [[0]] (- (SLOAD 0) 1) (STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 0 (SLOAD 0))}", + "nonce" : "0", + "storage" : { + "0x00" : "850" + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "10000000", "9000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NewGasPriceForCodesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NewGasPriceForCodesFiller.json new file mode 100644 index 000000000..47f3819ef --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NewGasPriceForCodesFiller.json @@ -0,0 +1,154 @@ +{ + "static_NewGasPriceForCodes" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05e276", + "0x64" : "0x11" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x06441e", + "0x64" : "0x11" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0", + "0x02" : "0", + "0x03" : "0", + "0x04" : "0", + "0x07" : "0", + "0x08" : "0", + "0x0a" : "0", + "0x64" : "0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05f428", + "0x64" : "0x11" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "111", + "code" : "0x1122334455667788991011121314151617181920212223242526272829303132", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 100 0x11) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "Test gasPrice of thise codes after EIP150 transition", + "code" : "{ (SSTORE 1 (EXTCODESIZE 0x1000000000000000000000000000000000000010)) (EXTCODECOPY 0x1000000000000000000000000000000000000010 0 0 20) (SSTORE 2 (MLOAD 0)) (SSTORE 4 (SLOAD 0)) (SSTORE 5 (STATICCALL 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 6 (CALLCODE 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 7 (DELEGATECALL 30000 0x1000000000000000000000000000000000000011 0 0 0 0)) (SSTORE 8 (STATICCALL 30000 0x1000000000000000000000000000000000000013 0 0 0 0 0)) (SSTORE 3 (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)) (SSTORE 10 (GAS)) }", + "storage": { + "0x00" : "0x12" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL2Filler.json new file mode 100644 index 000000000..ecf078139 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL2Filler.json @@ -0,0 +1,88 @@ +{ + "static_NonZeroValue_CALL2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bd5d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToEmptyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToEmptyFiller.json new file mode 100644 index 000000000..2e30f0fdb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToEmptyFiller.json @@ -0,0 +1,113 @@ +{ + "static_NonZeroValue_CALL_ToEmpty" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json new file mode 100644 index 000000000..90ad0abee --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json @@ -0,0 +1,91 @@ +{ + "static_NonZeroValue_CALL_ToNonNonZeroBalance" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085709" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08599d" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json new file mode 100644 index 000000000..143d56246 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json @@ -0,0 +1,123 @@ +{ + "static_NonZeroValue_CALL_ToOneStorageKey" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_PostToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_PostToReturn1Filler.json new file mode 100644 index 000000000..905297c4f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_PostToReturn1Filler.json @@ -0,0 +1,68 @@ +{ + "static_PostToReturn1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](STATICCALL 30000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 0 ) [[2]] 1 }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x603760005360026000f2", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsFiller.json new file mode 100644 index 000000000..7cb37c344 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsFiller.json @@ -0,0 +1,183 @@ +{ + "static_RETURN_Bounds" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01", + "0x09" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x7fffffffffffffff" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "1" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsOOGFiller.json new file mode 100644 index 000000000..73d5c08f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RETURN_BoundsOOGFiller.json @@ -0,0 +1,172 @@ +{ + "static_RETURN_BoundsOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "1" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasAskFiller.json new file mode 100644 index 000000000..57e5fa043 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06e228" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasFiller.json new file mode 100644 index 000000000..de8687167 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b28d" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferAskFiller.json new file mode 100644 index 000000000..c871aa37c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c889" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferFiller.json new file mode 100644 index 000000000..d696fd52c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransfer" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069861" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryAskFiller.json new file mode 100644 index 000000000..c2c99289d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferMemoryAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c52e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryFiller.json new file mode 100644 index 000000000..0695ae442 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallGasValueTransferMemoryFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallGasValueTransferMemory" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0694f9" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasAskFiller.json new file mode 100644 index 000000000..c4770c381 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasAskFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallMemoryGasAsk" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06dece" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasFiller.json new file mode 100644 index 000000000..a2c81f978 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RawCallMemoryGasFiller.json @@ -0,0 +1,95 @@ +{ + "static_RawCallMemoryGas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06af25" + } + } + } + } + ], + "pre" : + { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000Filler.json new file mode 100644 index 000000000..4d1c7bbf4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000Filler.json @@ -0,0 +1,90 @@ +{ + "static_Return50000 " : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x600161c34f35f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05429690", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (RETURN (CALLDATALOAD 49999) 1) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000_2Filler.json new file mode 100644 index 000000000..36fff2e56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Return50000_2Filler.json @@ -0,0 +1,90 @@ +{ + "static_Return50000_2 " : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffabd696f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x61c34f356000526001600051f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x05429690", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ [ 0 ] (CALLDATALOAD 49999) (RETURN @0 1) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTest2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTest2Filler.json new file mode 100644 index 000000000..f9474cfc9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTest2Filler.json @@ -0,0 +1,68 @@ +{ + "static_ReturnTest2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15", + "0x01" : "0x3f" + } + } + } + } + ], + "pre" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x15)(STATICCALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "250000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTestFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTestFiller.json new file mode 100644 index 000000000..d98239273 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ReturnTestFiller.json @@ -0,0 +1,67 @@ +{ + "static_ReturnTest" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150"], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15" + } + } + } + } + ], + "pre" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(STATICCALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 0x15) (RETURN 31 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "300000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepth2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepth2Filler.json new file mode 100644 index 000000000..f3ef13ce0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepth2Filler.json @@ -0,0 +1,106 @@ +{ + "static_RevertDepth2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 150000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (STATICCALL 150000 0xd000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "", + "storage" : { + } + }, + "c000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "0", + "storage" : { + } + }, + "d000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (GAS)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : "In transaction T to A, A call B call C, then A call D calls C, D fails after calling C.", + "data" : [ + "" + ], + "gasLimit" : [ + "170685" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateAddressCollisionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateAddressCollisionFiller.json new file mode 100644 index 000000000..46189db1a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateAddressCollisionFiller.json @@ -0,0 +1,222 @@ +{ + "static_RevertDepthCreateAddressCollision" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP158"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "55", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "54", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "54", + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : ["Homestead", "Frontier"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "double OOG", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", + "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", + "data" : [ + "000000000000000000000000000000000000000000000000000000000000ea60", + "000000000000000000000000000000000000000000000000000000000001ea60" + ], + "gasLimit" : [ + "110000", "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "3e180b1862f9d158abb5e519a6d8605540c23682", + "value" : [ + "1", "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateOOGFiller.json new file mode 100644 index 000000000..a0a45db29 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertDepthCreateOOGFiller.json @@ -0,0 +1,178 @@ +{ + "static_RevertDepthCreateOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP158"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["EIP150"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "0" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } + } + } + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "comment" : "OOG after subcall / double OOG", + "indexes" : { + "data" : [1, 0], + "gas" : 0, + "value" : 0 + }, + "network" : ["ALL"], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", + "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", + "data" : [ + "000000000000000000000000000000000000000000000000000000000000ea60", + "000000000000000000000000000000000000000000000000000000000001ea60" + ], + "gasLimit" : [ + "110000", "160000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "1", "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeCallsFiller.json new file mode 100644 index 000000000..8e07bc0df --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeCallsFiller.json @@ -0,0 +1,299 @@ +{ + "static_RevertOpcodeCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "comment" : "OOG", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x01", + "0x02" : "0x0e" + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x0e" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (STATICCALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[4]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b0005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b1005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b2005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "460000", "88000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeDirectCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeDirectCallFiller.json new file mode 100644 index 000000000..90f01a82d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeDirectCallFiller.json @@ -0,0 +1,116 @@ +{ + "static_RevertOpcodeDirectCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (STATICCALL 60000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "!!! STRANGE: CALL works, but if called from 094... it wont work. even if gas is enough. seems to be OOG.", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "460000", "68000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeMultipleSubCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeMultipleSubCallsFiller.json new file mode 100644 index 000000000..9dbcdee84 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeMultipleSubCallsFiller.json @@ -0,0 +1,412 @@ +{ + "static_RevertOpcodeMultipleSubCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : [2], + "value" : [1,0] + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : [1], + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x00", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ac00000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 260000 (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }", + "nonce" : "0", + "storage" : {} + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "simple calls", + "code" : "call -> callA-> revert | callB -> revert | some code * and OOG scenarious", + "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](STATICCALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](CALLCODE 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](CALLCODE 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](DELEGATECALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](DELEGATECALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + }, + "c000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[2]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + }, + "d000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[3]] 12 (REVERT 0 1) }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "000000000000000000000000a000000000000000000000000000000000000000", + "000000000000000000000000a100000000000000000000000000000000000000", + "000000000000000000000000a200000000000000000000000000000000000000", + "000000000000000000000000a300000000000000000000000000000000000000" + ], + "gasLimit" : [ + "800000", "140000", "160000", "50000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ac00000000000000000000000000000000000000", + "value" : [ + "0", "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeReturnFiller.json new file mode 100644 index 000000000..4bd1f6b65 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertOpcodeReturnFiller.json @@ -0,0 +1,157 @@ +{ + "static_RevertOpcodeReturn" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x726576657274206d657373616765" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : [1,2,3,4,5], + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]](STATICCALL 150000 (CALLDATALOAD 0) 0 0 0 0 32) [[2]] (MLOAD 0) }", + "nonce" : "", + "storage" : { + } + }, + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 32) }", + "nonce" : "0", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0xfffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a400000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x0100 0x00) }", + "nonce" : "0", + "storage" : { + } + }, + "a500000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x01 0x00) }", + "nonce" : "0", + "storage" : { + } + }, + "a600000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0xfffffffffffffffffffffffffffff 0x00) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "000000000000000000000000a100000000000000000000000000000000000000", + "000000000000000000000000a200000000000000000000000000000000000000", + "000000000000000000000000a300000000000000000000000000000000000000", + "000000000000000000000000a400000000000000000000000000000000000000", + "000000000000000000000000a500000000000000000000000000000000000000", + "000000000000000000000000a600000000000000000000000000000000000000" + ], + "gasLimit" : [ + "800000", "70000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrecompiledTouchFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrecompiledTouchFiller.json new file mode 100644 index 000000000..9386a4766 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrecompiledTouchFiller.json @@ -0,0 +1,135 @@ +{ + "static_RevertPrecompiledTouch" : { + "env" : { + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0" + } + } + } + ], + "pre" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 50000 1 0 0 0 0 0) (STATICCALL 50000 2 0 0 0 0 0) (STATICCALL 50000 3 0 0 0 0 0) (STATICCALL 50000 4 0 0 0 0 0) (STATICCALL 50000 5 0 0 0 0 0) (STATICCALL 50000 6 0 0 0 0 0) (STATICCALL 50000 7 0 0 0 0 0) (STATICCALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "1", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "60000" + ], + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallFiller.json new file mode 100644 index 000000000..6cfc6c5e5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallFiller.json @@ -0,0 +1,105 @@ +{ + "static_RevertPrefoundCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "94000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallOOGFiller.json new file mode 100644 index 000000000..fa7a0ac4d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundCallOOGFiller.json @@ -0,0 +1,71 @@ +{ + "static_RevertPrefoundCallOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "63000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallFiller.json new file mode 100644 index 000000000..c63955789 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallFiller.json @@ -0,0 +1,101 @@ +{ + "static_RevertPrefoundEmptyCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "94000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallOOGFiller.json new file mode 100644 index 000000000..3ed5dbbc6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_RevertPrefoundEmptyCallOOGFiller.json @@ -0,0 +1,71 @@ +{ + "static_RevertPrefoundEmptyCallOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", + "data" : [ + "" + ], + "gasLimit" : [ + "63000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json new file mode 100644 index 000000000..f5dac0424 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json @@ -0,0 +1,101 @@ +{ + "static_StoreClearsAndInternlCallStoreClearsOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20", + "storage" : { + "0x04" : "0x0c" + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 20000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json new file mode 100644 index 000000000..9d3a330f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json @@ -0,0 +1,89 @@ +{ + "static_StoreClearsAndInternlCallStoreClearsSuccess" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19", + "storage" : { + "0x04" : "0x0c" + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 50000 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToExistingContractFiller.json new file mode 100644 index 000000000..726a622de --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToExistingContractFiller.json @@ -0,0 +1,91 @@ +{ + "static_SuicideToExistingContract" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "Suicide to existing account", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToNotExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToNotExistingContractFiller.json new file mode 100644 index 000000000..904aa1f19 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicideToNotExistingContractFiller.json @@ -0,0 +1,109 @@ +{ + "static_SuicideToNotExistingContract" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x085db0" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide to unknown contract on EIP150", + "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000116 0 0 0 0 0) [[1]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000116" : { + "balance" : "0", + "nonce" : "0", + "code" : "Suicide to not existing account", + "code" : "{ (SELFDESTRUCT 0x2000000000000000000000000000000000000115) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json new file mode 100644 index 000000000..1eb733f3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json @@ -0,0 +1,66 @@ +{ + "static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailed" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "20", + "code" : "0x6001ff" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 0 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json new file mode 100644 index 000000000..c8f980f7a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json @@ -0,0 +1,84 @@ +{ + "static_SuicidesAndInternlCallSuicidesBonusGasAtCall" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesOOGFiller.json new file mode 100644 index 000000000..cea315bc1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesOOGFiller.json @@ -0,0 +1,72 @@ +{ + "static_SuicidesAndInternlCallSuicidesOOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "0x6001ff" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(STATICCALL 22000 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "50000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesSuccessFiller.json new file mode 100644 index 000000000..a9dc7b5cf --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesAndInternlCallSuicidesSuccessFiller.json @@ -0,0 +1,82 @@ +{ + "static_SuicidesAndInternlCallSuicidesSuccess" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "180000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{(STATICCALL (CALLDATALOAD 0) 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000055f0", "0x000000000000000000000000000000000000000000000000000000000000aaf0" + ], + "gasLimit" : [ + "150000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesStopAfterSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesStopAfterSuicideFiller.json new file mode 100644 index 000000000..2f4f714b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_SuicidesStopAfterSuicideFiller.json @@ -0,0 +1,73 @@ +{ + "static_SuicidesStopAfterSuicide" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "100000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0000000000000000000000000000000000000000" : { + "code" : "0x6001ff", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1110", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "122000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000", + "code" : "{(SELFDESTRUCT 0) (STATICCALL 30000 0x0000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "83700" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert2Filler.json new file mode 100644 index 000000000..b902b60e0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert2Filler.json @@ -0,0 +1,77 @@ +{ + "static_TouchToEmptyAccountRevert2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[2]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[3]] 1 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "77400" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert3Filler.json new file mode 100644 index 000000000..2be6fe5b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevert3Filler.json @@ -0,0 +1,91 @@ +{ + "static_TouchToEmptyAccountRevert3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "storage": { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[2]](STATICCALL 30000 0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[3]] 1 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "storage": { + } + }, + "e94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "82400", "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevertFiller.json new file mode 100644 index 000000000..c90aaaf3f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_TouchToEmptyAccountRevertFiller.json @@ -0,0 +1,77 @@ +{ + "static_TouchToEmptyAccountRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](STATICCALL 30000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 1 }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "70000", "500000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64e0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64e0Filler.json new file mode 100644 index 000000000..c9246cb52 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64e0Filler.json @@ -0,0 +1,75 @@ +{ + "static_Transaction64Rule_d64e0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f34", + "0x02" : "0xe3df" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160062" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64m1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64m1Filler.json new file mode 100644 index 000000000..ebaecfe78 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64m1Filler.json @@ -0,0 +1,96 @@ +{ + "static_Transaction64Rule_d64m1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f33", + "0x02" : "0x018015" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x02" : "0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) (STATICCALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160061" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64p1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64p1Filler.json new file mode 100644 index 000000000..56231773b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_Transaction64Rule_d64p1Filler.json @@ -0,0 +1,76 @@ +{ + "static_Transaction64Rule_d64p1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f35", + "0x01" : "0x00", + "0x02" : "0xd057" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "check gas spent on suicide known contract on EIP150", + "code" : "{ [[0]] (GAS) [[1]](STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", + "storage": { + } + }, + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[1]] 12 }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "160063" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL2Filler.json new file mode 100644 index 000000000..1405535ea --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL2Filler.json @@ -0,0 +1,67 @@ +{ + "static_ZeroValue_CALL2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_OOGRevertFiller.json new file mode 100644 index 000000000..711702a56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_OOGRevertFiller.json @@ -0,0 +1,69 @@ +{ + "static_ZeroValue_CALL_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty2Filler.json new file mode 100644 index 000000000..b1c983b02 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty2Filler.json @@ -0,0 +1,74 @@ +{ + "static_ZeroValue_CALL_ToEmpty2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json new file mode 100644 index 000000000..c10db9c3c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json @@ -0,0 +1,76 @@ +{ + "static_ZeroValue_CALL_ToEmpty_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json new file mode 100644 index 000000000..b77d0cfda --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json @@ -0,0 +1,74 @@ +{ + "static_ZeroValue_CALL_ToNonZeroBalance2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json new file mode 100644 index 000000000..1d9e26aa3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json @@ -0,0 +1,76 @@ +{ + "static_ZeroValue_CALL_ToNonZeroBalance_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey2Filler.json new file mode 100644 index 000000000..c88b1bb8e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey2Filler.json @@ -0,0 +1,95 @@ +{ + "static_ZeroValue_CALL_ToOneStorageKey2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x6fffffffffffade6", + "0x01" : "0x01", + "0x64" : "0x6fffffffffff0ed0" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "600000", "0x6ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json new file mode 100644 index 000000000..9dd6f18c9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json @@ -0,0 +1,77 @@ +{ + "static_ZeroValue_CALL_ToOneStorageKey_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "135000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_OOGRevertFiller.json new file mode 100644 index 000000000..7542568e9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_OOGRevertFiller.json @@ -0,0 +1,72 @@ +{ + "static_ZeroValue_SELFDESTRUCT_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 40000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "100000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json new file mode 100644 index 000000000..ca4053a79 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json @@ -0,0 +1,79 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToEmpty_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json new file mode 100644 index 000000000..b43357ab1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json @@ -0,0 +1,79 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToNonZeroBalance_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : {} + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "0", + "code" : "", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json new file mode 100644 index 000000000..3d7aee123 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json @@ -0,0 +1,82 @@ +{ + "static_ZeroValue_SELFDESTRUCT_ToOneStorageKey_OOGRevert" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { "0x00" : "0x01" } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "storage": { + "0x00" : "0x01" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "storage": { + "0x00" : "0x01" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "", + "storage": { + "0x00" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "75000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput1Filler.json new file mode 100644 index 000000000..10caab2e8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput1Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput2Filler.json new file mode 100644 index 000000000..0a3a965be --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput2Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3FailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3FailFiller.json new file mode 100644 index 000000000..da198b243 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3FailFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3Fail" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x016001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3Filler.json new file mode 100644 index 000000000..da6adbe0d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3Filler.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFailFiller.json new file mode 100644 index 000000000..dd9d4fd97 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFailFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3partialFail" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x016001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFiller.json new file mode 100644 index 000000000..c973f8b04 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callOutput3partialFiller.json @@ -0,0 +1,63 @@ +{ + "static_callOutput3partial" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x6001600101600055", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndGasOOGFiller.json new file mode 100644 index 000000000..840350c7c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndGasOOGFiller.json @@ -0,0 +1,62 @@ +{ + "static_callWithHighValueAndGasOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100000000000000000000 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndOOGatTxLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndOOGatTxLevelFiller.json new file mode 100644 index 000000000..b7183b50b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueAndOOGatTxLevelFiller.json @@ -0,0 +1,78 @@ +{ + "static_callWithHighValueAndOOGatTxLevel" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "3000000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "33424" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (STATICCALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100001 0 0 0 0 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueFiller.json new file mode 100644 index 000000000..adb79686e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueFiller.json @@ -0,0 +1,62 @@ +{ + "static_callWithHighValue" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000000000000000001 0 64 0 2 ) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueOOGinCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueOOGinCallFiller.json new file mode 100644 index 000000000..60cc81e44 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callWithHighValueOOGinCallFiller.json @@ -0,0 +1,86 @@ +{ + "static_callWithHighValueOOGinCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763155a" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150" ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999939270" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (ADD (STATICCALL 10000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0 ) 1) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "0x6001600155603760005360026000f3", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts1Filler.json new file mode 100644 index 000000000..802ffb154 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts1Filler.json @@ -0,0 +1,73 @@ +{ + "static_call_OOG_additionalGasCosts1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150"], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999970000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21727" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999978273" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts2Filler.json new file mode 100644 index 000000000..8ab951dec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_call_OOG_additionalGasCosts2Filler.json @@ -0,0 +1,65 @@ +{ + "static_call_OOG_additionalGasCosts2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x7530" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7638ad0" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json new file mode 100644 index 000000000..75b715624 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json @@ -0,0 +1,108 @@ +{ + "static_callcallcodecall_010_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json new file mode 100644 index 000000000..ace0681a5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json @@ -0,0 +1,105 @@ +{ + "static_callcallcodecall_010_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json new file mode 100644 index 000000000..628c1a445 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json @@ -0,0 +1,102 @@ +{ + "static_callcallcodecall_010_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json new file mode 100644 index 000000000..5d8ba9ade --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcallcodecall_010_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json new file mode 100644 index 000000000..b18faba61 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json @@ -0,0 +1,108 @@ +{ + "static_callcallcodecall_010_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json new file mode 100644 index 000000000..b4352fe45 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcallcodecall_010_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json new file mode 100644 index 000000000..2c3feb0bb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json @@ -0,0 +1,97 @@ +{ + "static_callcallcodecall_010_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json new file mode 100644 index 000000000..e44dfdf57 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcallcodecall_010_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json new file mode 100644 index 000000000..d5b1c0d48 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json @@ -0,0 +1,97 @@ +{ + "static_callcallcodecall_010_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..7058e4952 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026727" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..2e416307d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,90 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026727" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011Filler.json new file mode 100644 index 000000000..2a28ffbc0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json new file mode 100644 index 000000000..a965eae82 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcodecallcode_011_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGEFiller.json new file mode 100644 index 000000000..002e64df2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGEFiller.json @@ -0,0 +1,106 @@ +{ + "static_callcallcodecallcode_011_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGE_2Filler.json new file mode 100644 index 000000000..ef3f8f608 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGE_2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcallcodecallcode_011_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter2Filler.json new file mode 100644 index 000000000..1d775aa1e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfterFiller.json new file mode 100644 index 000000000..4815b0cbd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfterFiller.json @@ -0,0 +1,108 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_1Filler.json new file mode 100644 index 000000000..5a9d87395 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_1Filler.json @@ -0,0 +1,105 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_2Filler.json new file mode 100644 index 000000000..a1120ab5d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMAfter_2Filler.json @@ -0,0 +1,100 @@ +{ + "static_callcallcodecallcode_011_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBefore2Filler.json new file mode 100644 index 000000000..f04feb2fc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBefore2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBeforeFiller.json new file mode 100644 index 000000000..fc519188d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcallcodecallcode_011_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEnd2Filler.json new file mode 100644 index 000000000..fd5af0f97 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEnd2Filler.json @@ -0,0 +1,80 @@ +{ + "static_callcallcodecallcode_011_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEndFiller.json new file mode 100644 index 000000000..64a5a5dce --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideEndFiller.json @@ -0,0 +1,135 @@ +{ + "static_callcallcodecallcode_011_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddle2Filler.json new file mode 100644 index 000000000..75ea9fc86 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddle2Filler.json @@ -0,0 +1,94 @@ +{ + "static_callcallcodecallcode_011_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddleFiller.json new file mode 100644 index 000000000..44ec8f86e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_SuicideMiddleFiller.json @@ -0,0 +1,112 @@ +{ + "static_callcallcodecallcode_011_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..530e2b912 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcallcodecallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..f159eb182 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,152 @@ +{ + "static_callcallcodecallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcode_checkPCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcode_checkPCFiller.json new file mode 100644 index 000000000..9e0049e1f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcode_checkPCFiller.json @@ -0,0 +1,61 @@ +{ + "static_callcode_checkPC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier","Homestead", "EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x03" : "0x25" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[3]] (PC)}", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10Filler.json new file mode 100644 index 000000000..3f16f0494 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10Filler.json @@ -0,0 +1,115 @@ +{ + "static_callcodecall_10" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_2Filler.json new file mode 100644 index 000000000..b6e80bd9f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_2Filler.json @@ -0,0 +1,83 @@ +{ + "static_callcodecall_10_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGEFiller.json new file mode 100644 index 000000000..07a128805 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGEFiller.json @@ -0,0 +1,123 @@ +{ + "static_callcodecall_10_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGE_2Filler.json new file mode 100644 index 000000000..10738e848 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_OOGE_2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcodecall_10_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEnd2Filler.json new file mode 100644 index 000000000..6458255d3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEnd2Filler.json @@ -0,0 +1,78 @@ +{ + "static_callcodecall_10_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEndFiller.json new file mode 100644 index 000000000..b8e44ecf8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecall_10_SuicideEndFiller.json @@ -0,0 +1,108 @@ +{ + "static_callcodecall_10_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100Filler.json new file mode 100644 index 000000000..7df498568 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100Filler.json @@ -0,0 +1,134 @@ +{ + "static_callcodecallcall_100" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x02" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_2Filler.json new file mode 100644 index 000000000..3ed37f54e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_2Filler.json @@ -0,0 +1,95 @@ +{ + "static_callcodecallcall_100_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGE2Filler.json new file mode 100644 index 000000000..34813f3b0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGE2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcodecallcall_100_OOGE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGEFiller.json new file mode 100644 index 000000000..9b0aef21c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGEFiller.json @@ -0,0 +1,148 @@ +{ + "static_callcodecallcall_100_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter2Filler.json new file mode 100644 index 000000000..230782133 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter2Filler.json @@ -0,0 +1,132 @@ +{ + "static_callcodecallcall_100_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfterFiller.json new file mode 100644 index 000000000..95dfa9a21 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcall_100_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_2Filler.json new file mode 100644 index 000000000..ee5e3865e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_2Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcall_100_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_3Filler.json new file mode 100644 index 000000000..7d8fc6515 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMAfter_3Filler.json @@ -0,0 +1,133 @@ +{ + "static_callcodecallcall_100_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBefore2Filler.json new file mode 100644 index 000000000..8680d711f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBefore2Filler.json @@ -0,0 +1,104 @@ +{ + "static_callcodecallcall_100_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBeforeFiller.json new file mode 100644 index 000000000..2b6c46614 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcall_100_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEnd2Filler.json new file mode 100644 index 000000000..aa494d02b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEnd2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcall_100_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEndFiller.json new file mode 100644 index 000000000..d992a2411 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideEndFiller.json @@ -0,0 +1,139 @@ +{ + "static_callcodecallcall_100_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddle2Filler.json new file mode 100644 index 000000000..d11663f35 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddle2Filler.json @@ -0,0 +1,85 @@ +{ + "static_callcodecallcall_100_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddleFiller.json new file mode 100644 index 000000000..2473dd1d9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_100_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcall_100_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..e263cc347 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..ff9c7301c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101Filler.json new file mode 100644 index 000000000..019dac9e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101Filler.json @@ -0,0 +1,152 @@ +{ + "static_callcodecallcallcode_101" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x06" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 6 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_2Filler.json new file mode 100644 index 000000000..b2456997f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcallcode_101_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGEFiller.json new file mode 100644 index 000000000..393b3aade --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGEFiller.json @@ -0,0 +1,148 @@ +{ + "static_callcodecallcallcode_101_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGE_2Filler.json new file mode 100644 index 000000000..9f8373f90 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGE_2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcodecallcallcode_101_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter2Filler.json new file mode 100644 index 000000000..d23557ff2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter2Filler.json @@ -0,0 +1,136 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfterFiller.json new file mode 100644 index 000000000..7b5f65d33 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_1Filler.json new file mode 100644 index 000000000..5c1e06d7b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_1Filler.json @@ -0,0 +1,131 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_3Filler.json new file mode 100644 index 000000000..3c4a6f8c3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMAfter_3Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcallcode_101_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBefore2Filler.json new file mode 100644 index 000000000..efe8e42af --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBefore2Filler.json @@ -0,0 +1,101 @@ +{ + "static_callcodecallcallcode_101_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBeforeFiller.json new file mode 100644 index 000000000..674790bc6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcallcode_101_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEnd2Filler.json new file mode 100644 index 000000000..d0ff145e6 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEnd2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcodecallcallcode_101_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEndFiller.json new file mode 100644 index 000000000..0c50d3d14 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideEndFiller.json @@ -0,0 +1,143 @@ +{ + "static_callcodecallcallcode_101_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddle2Filler.json new file mode 100644 index 000000000..8d7f6d752 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddle2Filler.json @@ -0,0 +1,93 @@ +{ + "static_callcodecallcallcode_101_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddleFiller.json new file mode 100644 index 000000000..189251e6d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_101_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcallcode_101_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..ce38014a0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..5186812fe --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_1102Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_1102Filler.json new file mode 100644 index 000000000..1399d3285 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_1102Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcodecall_110_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110Filler.json new file mode 100644 index 000000000..46ad433f3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110Filler.json @@ -0,0 +1,140 @@ +{ + "static_callcodecallcodecall_110" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (SSTORE 6 (CALLER))}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_2Filler.json new file mode 100644 index 000000000..1399d3285 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcodecallcodecall_110_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGE2Filler.json new file mode 100644 index 000000000..4a2e3ee64 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGE2Filler.json @@ -0,0 +1,100 @@ +{ + "static_callcodecallcodecall_110_OOGE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGEFiller.json new file mode 100644 index 000000000..9773cacdc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGEFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter2Filler.json new file mode 100644 index 000000000..47dae0f3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter2Filler.json @@ -0,0 +1,136 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfterFiller.json new file mode 100644 index 000000000..148b58226 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfterFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_2Filler.json new file mode 100644 index 000000000..6c89d2003 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_2Filler.json @@ -0,0 +1,147 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_3Filler.json new file mode 100644 index 000000000..529c7676c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMAfter_3Filler.json @@ -0,0 +1,141 @@ +{ + "static_callcodecallcodecall_110_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBefore2Filler.json new file mode 100644 index 000000000..e6f15b515 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBefore2Filler.json @@ -0,0 +1,102 @@ +{ + "static_callcodecallcodecall_110_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBeforeFiller.json new file mode 100644 index 000000000..23bc61841 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_OOGMBeforeFiller.json @@ -0,0 +1,150 @@ +{ + "static_callcodecallcodecall_110_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEnd2Filler.json new file mode 100644 index 000000000..58d2e2ca0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEnd2Filler.json @@ -0,0 +1,81 @@ +{ + "static_callcodecallcodecall_110_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEndFiller.json new file mode 100644 index 000000000..9fe15f353 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideEndFiller.json @@ -0,0 +1,125 @@ +{ + "static_callcodecallcodecall_110_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddle2Filler.json new file mode 100644 index 000000000..286ab5978 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddle2Filler.json @@ -0,0 +1,92 @@ +{ + "static_callcodecallcodecall_110_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddleFiller.json new file mode 100644 index 000000000..bc515c703 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_110_SuicideMiddleFiller.json @@ -0,0 +1,127 @@ +{ + "static_callcodecallcodecall_110_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..cdf0503f1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,113 @@ +{ + "static_callcodecallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..5a739a451 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,167 @@ +{ + "static_callcodecallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecallcode_111_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecallcode_111_SuicideEndFiller.json new file mode 100644 index 000000000..aafe3d123 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcodecallcodecallcode_111_SuicideEndFiller.json @@ -0,0 +1,133 @@ +{ + "static_callcodecallcodecallcode_111_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead", "EIP158", "EIP150"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 1 0 64 0 64) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json new file mode 100644 index 000000000..894cc2332 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json @@ -0,0 +1,89 @@ +{ + "static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Frontier"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "balance" : "0" + }, + "1000000000000000000000000000000000000001": { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001": { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" + ], + "gasLimit" : [ + "96000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json new file mode 100644 index 000000000..09ff782f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json @@ -0,0 +1,69 @@ +{ + "static_contractCreationOOGdontLeaveEmptyContractViaTransaction" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, + "network" : ["Homestead"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, + "network" : ["Frontier", "EIP158", "EIP150"], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" + ], + "gasLimit" : [ + "96000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_emptyMemFiller.json new file mode 100644 index 000000000..87fe60505 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemStartTooHighFiller.json new file mode 100644 index 000000000..6f747db13 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log0_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..69fc069bb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log0_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeZeroFiller.json new file mode 100644 index 000000000..34433b73e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMemFiller.json new file mode 100644 index 000000000..ccf88cb35 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..c3dd8246f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "2100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..e6ff51410 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log0_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_CallerFiller.json new file mode 100644 index 000000000..1acb969f0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_MaxTopicFiller.json new file mode 100644 index 000000000..feb23c0df --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_emptyMemFiller.json new file mode 100644 index 000000000..0e8db864c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemStartTooHighFiller.json new file mode 100644 index 000000000..da3cb4ccd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log1_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..58a016e57 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log1_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeZeroFiller.json new file mode 100644 index 000000000..e478e8201 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMemFiller.json new file mode 100644 index 000000000..fe0353ff5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..9996f6d6e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..9f3cdd9c4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log1_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_CallerFiller.json new file mode 100644 index 000000000..108f13407 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_MaxTopicFiller.json new file mode 100644 index 000000000..ad2cf521b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_emptyMemFiller.json new file mode 100644 index 000000000..a4b2557ea --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG2 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemStartTooHighFiller.json new file mode 100644 index 000000000..205ca9cbb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log2_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..cdd02eaa3 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log2_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeZeroFiller.json new file mode 100644 index 000000000..13cfe0ae7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMemFiller.json new file mode 100644 index 000000000..798859cec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..9030fec0a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..615149e78 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log2_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_CallerFiller.json new file mode 100644 index 000000000..c3a056e95 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_MaxTopicFiller.json new file mode 100644 index 000000000..d2bdeae9a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_PCFiller.json new file mode 100644 index 000000000..adb36977a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_PCFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_PC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_emptyMemFiller.json new file mode 100644 index 000000000..945ff9f22 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG3 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemStartTooHighFiller.json new file mode 100644 index 000000000..315a4d30a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log3_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..24b64c0a8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log3_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeZeroFiller.json new file mode 100644 index 000000000..2ac8451d1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMemFiller.json new file mode 100644 index 000000000..d14c0efb1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..6d98bd14d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..e3edb402e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log3_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_CallerFiller.json new file mode 100644 index 000000000..8db8f9ba0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_CallerFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_Caller" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_MaxTopicFiller.json new file mode 100644 index 000000000..2e8f47925 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_MaxTopicFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_MaxTopic" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_PCFiller.json new file mode 100644 index 000000000..e5a7d3a56 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_PCFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_PC" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 (PC) (PC) (PC) (PC) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_emptyMemFiller.json new file mode 100644 index 000000000..acca8a112 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_emptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_emptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG4 0 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemStartTooHighFiller.json new file mode 100644 index 000000000..3eeb7f647 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemStartTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log4_logMemStartTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeTooHighFiller.json new file mode 100644 index 000000000..86e1930ed --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeTooHighFiller.json @@ -0,0 +1,66 @@ +{ + "static_log4_logMemsizeTooHigh" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeZeroFiller.json new file mode 100644 index 000000000..da17539b4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_logMemsizeZeroFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_logMemsizeZero" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMemFiller.json new file mode 100644 index 000000000..0c4432ffd --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMemFiller.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1Filler.json new file mode 100644 index 000000000..87d44cdde --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1Filler.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem_logMemSize1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json new file mode 100644 index 000000000..2ab96ee07 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json @@ -0,0 +1,67 @@ +{ + "static_log4_nonEmptyMem_logMemSize1_logMemStart31" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_logInOOG_CallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_logInOOG_CallFiller.json new file mode 100644 index 000000000..0f2667d87 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_logInOOG_CallFiller.json @@ -0,0 +1,67 @@ +{ + "static_logInOOG_Call" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 32) (MLOAD 0xffffffffffffffff) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "210000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_makeMoneyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_makeMoneyFiller.json new file mode 100644 index 000000000..badb2b3d4 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_makeMoneyFiller.json @@ -0,0 +1,82 @@ +{ + "static_makeMoney" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "771500" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000" + } + } + }, + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "999999999999999987" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "931546" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000023" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (STATICCALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 23 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x600160015532600255", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "228500" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refundSuicide50procentCapFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refundSuicide50procentCapFiller.json new file mode 100644 index 000000000..b49ee2d14 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refundSuicide50procentCapFiller.json @@ -0,0 +1,110 @@ +{ + "static_refundSuicide50procentCap" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x984376", + "0x17" : "0x96bc55" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70695" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9929305", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x9843b6", + "0x17" : "0x96a679" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "73493" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9926507", + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 22 ]] (GAS) [[ 10 ]] 1 [[ 11 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 [[ 7 ]] 0 [[ 8 ]] 0 [[ 23 ]] (GAS) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallAFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallAFiller.json new file mode 100644 index 000000000..177f4bf6a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallAFiller.json @@ -0,0 +1,110 @@ +{ + "static_refund_CallA" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31070" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968920", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31730" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968260", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 5500 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "200000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_OOGFiller.json new file mode 100644 index 000000000..23600668a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_OOGFiller.json @@ -0,0 +1,82 @@ +{ + "static_refund_CallA_OOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "268931", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 6000 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "300000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "31069" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_notEnoughGasInCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_notEnoughGasInCallFiller.json new file mode 100644 index 000000000..5c3a93498 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallA_notEnoughGasInCallFiller.json @@ -0,0 +1,110 @@ +{ + "static_refund_CallA_notEnoughGasInCall" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68921", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31729" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68261", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 5005 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "85000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideNoStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideNoStorageFiller.json new file mode 100644 index 000000000..99b7ec811 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideNoStorageFiller.json @@ -0,0 +1,101 @@ +{ + "static_refund_CallToSuicideNoStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideStorageFiller.json new file mode 100644 index 000000000..6351fceec --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideStorageFiller.json @@ -0,0 +1,105 @@ +{ + "static_refund_CallToSuicideStorage" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideTwiceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideTwiceFiller.json new file mode 100644 index 000000000..6948922cb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_refund_CallToSuicideTwiceFiller.json @@ -0,0 +1,108 @@ +{ + "static_refund_CallToSuicideTwice" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20697" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979293", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "28649" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99971341", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", + "storage" : { + "0x01" : "0x01" + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json deleted file mode 100644 index 5eef4df16..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_CALL_OneVCallSuicide" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x085707" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "nonce" : "0x00", - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x086d23" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "nonce" : "0", - "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - } - - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json deleted file mode 100644 index 58794e85f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_CALL_ZeroVCallSuicide" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x087133" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "nonce" : "0x00", - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x08874f" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - } - - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json deleted file mode 100644 index 600c3f2dd..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_CREATE_ContractSuicideDuringInit" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json deleted file mode 100644 index 97e900424..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "storage" : { - "0x01" : "0" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "storage" : { - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{ (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b) (STATICCALL 60000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]]11 (RETURN 18 14)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600b600055600e6012f3" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json deleted file mode 100644 index fb8609699..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_CREATE_ContractSuicideDuringInit_WithValue" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "storage" : { - "0x01" : "12" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json deleted file mode 100644 index ae229557f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "static_CREATE_ContractSuicideDuringInit_WithValueToItself" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "0xe808" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a427ee" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "22870" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999977120" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "53740" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999946250" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - "0x01" : "12" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "59400" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999940590" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0x6295ee1b4f6dd65047762f924ecd367c17eabf8f)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052736295ee1b4f6dd65047762f924ecd367c17eabf8fff" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json deleted file mode 100644 index fbf25acf5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateEContractInInit_TrFiller.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_CREATE_EContractCreateEContractInInit_Tr" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x02" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x01" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 32) }", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150602060006000f0" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json deleted file mode 100644 index 4e5e74b39..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInitOOG_TrFiller.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "static_CREATE_EContractCreateNEContractInInitOOG_Tr" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x0c" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x02" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "shouldnotexist" : "1" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x0c" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x01" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "balance" : "0", - "code" : "0x600c600055", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" - ], - "gasLimit" : [ - "160000", "60000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json deleted file mode 100644 index c7553b303..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContractCreateNEContractInInit_TrFiller.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_CREATE_EContractCreateNEContractInInit_Tr" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x02" - }, - "64e2ebd6405af8cb348aec519084d3fff42ebba6" : { - "code" : "0x600c600055" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x01" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "code" : "0x600c600055" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json deleted file mode 100644 index b791d2154..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EContract_ThenCALLToNonExistentAccFiller.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "static_CREATE_EContract_ThenCALLToNonExistentAcc" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x071d49" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "1" - }, - "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x06be35" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x06bba1" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 0xe1ecf98489fa9ed60a664fc4998db699cfa39d40 0 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json deleted file mode 100644 index 07724e9a5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "static_CREATE_EmptyContractAndCallIt_0wei" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x071c81" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x071fab" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x071c81" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json deleted file mode 100644 index beaf5735d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_1weiFiller.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "static_CREATE_EmptyContractAndCallIt_1wei" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x070255" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "balance" : "0x01", - "nonce" : "0x01" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x07057f" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "balance" : "0x01", - "nonce" : "0x00" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x07bc62", - "0x03" : "0x01", - "0x64" : "0x070255" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "balance" : "0x01", - "nonce" : "0x00" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]](STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json deleted file mode 100644 index 7248d21e7..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "static_CREATE_EmptyContractWithStorageAndCallIt_0wei" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x071d30", - "0x03" : "0x01", - "0x64" : "0x067d4f" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x071fc4", - "0x03" : "0x01", - "0x64" : "0x06830d" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x071d30", - "0x03" : "0x01", - "0x64" : "0x067d4f" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", - "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json deleted file mode 100644 index 3b2a2b7a4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "static_CREATE_EmptyContractWithStorageAndCallIt_1wei" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x071d30", - "0x03" : "0x01", - "0x64" : "0x066323" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "balance" : "0x01", - "storage" : { - "0x00" : "12" - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x02" : "0x071fc4", - "0x03" : "0x01", - "0x64" : "0x0668e1" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "balance" : "0x01", - "storage" : { - "0x00" : "12" - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "nonce" : "0", - "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", - "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json deleted file mode 100644 index 2a9aa2cde..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageFiller.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "static_CREATE_EmptyContractWithStorage" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x64" : "0x071d30" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x64" : "0x071fc4" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", - "0x64" : "0x071d30" - } - }, - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "nonce" : "0" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}", - "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json deleted file mode 100644 index fa5d1370a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_empty000CreateinInitCode_TransactionFiller.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_CREATE_empty000CreateinInitCode_Transaction" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x02" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "12" - } - }, - "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "nonce" : "0x01" - }, - "a42676447b7cedfa5fde894d1d3df24aab362701" : { - "balance" : "0x00", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "This indicates that a call from transaction was initiated", - "code" : "{[[1]]12}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 0) }", - "data" : [ - "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600060006000f0" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json deleted file mode 100644 index c16b00166..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "static_CallContractToCreateContractAndCallItOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "0", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "1", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "0", - "storage" : { - "0x" : "0x0c" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "balance" : "1000", - "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 1000 (SLOAD 0) 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00" - ], - "gasLimit" : [ - "203000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json deleted file mode 100644 index 4df215de1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "static_CallContractToCreateContractOOGBonusGas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "0", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "1", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "1", - "nonce" : "0", - "storage" : { - "0x" : "0x0c" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "balance" : "112", - "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 12 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00" - ], - "gasLimit" : [ - "20000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json deleted file mode 100644 index f3dfa7a71..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallContractToCreateContractOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "balance" : "0", - "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 0 (SLOAD 0) 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00" - ], - "gasLimit" : [ - "20000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json deleted file mode 100644 index eae0cbbb6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "static_CallContractToCreateContractWhichWouldCreateContractIfCalled" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "62c01474f089b07dae603491675dc5b5748f7049" : { - "nonce" : "0" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "2", - "nonce" : "1", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "62c01474f089b07dae603491675dc5b5748f7049" : { - "shouldnotexist" : "1" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "2", - "nonce" : "2", - "storage" : { - "0x" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "1", - "storage" : { - "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" - } - }, - "62c01474f089b07dae603491675dc5b5748f7049" : { - "nonce" : "0" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "d2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "2", - "nonce" : "1", - "storage" : { - "0x" : "0x0c" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "balance" : "1000", - "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(STATICCALL 50000 (SLOAD 0) 1 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00" - ], - "gasLimit" : [ - "20000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json deleted file mode 100644 index ccc1d53f6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecover0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x01" : "0x01", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json deleted file mode 100644 index 4369d8b00..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallEcrecover0_0input" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json deleted file mode 100644 index 1a9492456..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallEcrecover0_Gas2999" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json deleted file mode 100644 index f674bab76..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_CallEcrecover0_NoGas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "70216" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "71026" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "71066" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json deleted file mode 100644 index 77b284ff3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallEcrecover0_completeReturnValue" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json deleted file mode 100644 index c34a26e1d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecover0_gas3000" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x01" : "0x01", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json deleted file mode 100644 index b8a55364f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecover0_overlappingInputOutput" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x01" : "0x01", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json deleted file mode 100644 index 57c9c4159..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallEcrecover1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json deleted file mode 100644 index 69777a439..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallEcrecover2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json deleted file mode 100644 index 4403fa29d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallEcrecover3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (STATICCALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json deleted file mode 100644 index d7945388e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecover80" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x00", - "0x01" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json deleted file mode 100644 index 93a97a505..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverCheckLength" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x01" : "0xa0", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json deleted file mode 100644 index 0340cdc8b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverCheckLengthWrongV" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x1122334455667788990011223344556677889900112233445566778899001122", - "0x01" : "0xa0", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json deleted file mode 100644 index adaeb1c88..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverH_prefixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", - "0x01" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json deleted file mode 100644 index 1967fa87a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverR_prefixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x00", - "0x01" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json deleted file mode 100644 index 7c133de91..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverS_prefixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", - "0x01" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json deleted file mode 100644 index b9c9d5719..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_CallEcrecoverV_prefixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x01" : "0x01", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3652240" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json deleted file mode 100644 index 64fb1bd1f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_CallGoesOOGOnSecondLevel2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000113" : { - "storage" : { - } - }, - "1000000000000000000000000000000000000114" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000113" : { - "storage" : { - } - }, - "1000000000000000000000000000000000000114" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "OOG Call transaction has less gas then in example above", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000113 0 0 0 0 0)) } ", - "storage": { - } - }, - "1000000000000000000000000000000000000113" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000114 0 0 0 0 0)) } ", - "storage": { - } - }, - "1000000000000000000000000000000000000114" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json deleted file mode 100644 index c1c4080a5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "static_CallGoesOOGOnSecondLevel" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000110" : { - "storage" : { - } - }, - "1000000000000000000000000000000000000111" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000110" : { - "storage" : { - } - }, - "1000000000000000000000000000000000000111" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "OOG Call because call goes OOG on second level", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000110 0 0 0 0 0)) } ", - "storage": { - } - }, - "1000000000000000000000000000000000000110" : { - "balance" : "0", - "nonce" : "0", - "code" : "Inner CaLL goes OOG on EIP150", - "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000111 0 0 0 0 0)) } ", - "storage": { - } - }, - "1000000000000000000000000000000000000111" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 8 (GAS)) (CREATE 0 0 0) (CREATE 0 0 0) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "220000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json deleted file mode 100644 index 18932500e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentitiy_1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 2 ]] (STATICCALL 500 4 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json deleted file mode 100644 index a78675055..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "static_CallIdentity_1_nonzeroValue" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000004" : { - "balance" : "19" - }, - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "200000000", - "code" : "{ [[ 2 ]] (STATICCALL 200000 4 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json deleted file mode 100644 index 4cacd8395..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentity_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json deleted file mode 100644 index 2a955f097..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentity_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json deleted file mode 100644 index 9988f244a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentity_4" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json deleted file mode 100644 index cba3e65a7..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentity_4_gas17" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 17 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json deleted file mode 100644 index ef8f874e1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallIdentity_4_gas18" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 18 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json deleted file mode 100644 index 35c6e6aa4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallIdentity_5" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 4 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json deleted file mode 100644 index 75955185e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "static_CallLoseGasOOG" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], - "result" : { - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x" : "0x01", - "0x02" : "0x03e9" - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "7000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1024", - "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7fffffffffffffff" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json deleted file mode 100644 index 1d524a05b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_CallRecursiveBomb0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x0400", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x011b", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000", - "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 11000) (ADDRESS) 0 0 0 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json deleted file mode 100644 index 240f958c7..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_CallRecursiveBomb0_OOG_atMaxCallDepth" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "100000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x0401", - "0x01" : "0x01" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x02c1", - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (STATICCALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "100000000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json deleted file mode 100644 index b6911f4d9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_CallRecursiveBomb1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x0401", - "0x01" : "0x01" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0xde", - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "20622100" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json deleted file mode 100644 index 5e62952e4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_CallRecursiveBomb2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x0400", - "0x01" : "0x01" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0xde", - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "20622099" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json deleted file mode 100644 index 4c058cf4a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "static_CallRecursiveBomb3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x08", - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json deleted file mode 100644 index 88bb7ebe2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_CallRecursiveBombLog2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x0400", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x012b", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json deleted file mode 100644 index 2e71fb0e6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_CallRecursiveBombLog" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x0400", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x012b", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json deleted file mode 100644 index f9363a751..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallRecursiveBombPreCall2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], - "result" : { - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000400", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0xfffffffffffffffffffffffffffffff", - "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (STATICCALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) (ADDRESS) 0 0 0 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7ffffffffffffff0" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json deleted file mode 100644 index 47c006979..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "static_CallRecursiveBombPreCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "storage" : { - "0x00" : "0x03ff", - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0xfffffffffffffffffffffffffffffff", - "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (STATICCALL (- (GAS) 224000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 0) } ", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7ffffffffffffff0" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json deleted file mode 100644 index a1ea7b7f1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 2 ]] (STATICCALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json deleted file mode 100644 index 2398a9e5e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json deleted file mode 100644 index ca693e8f3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json deleted file mode 100644 index 4569fdbf9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_3_postfixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json deleted file mode 100644 index 1efae3d19..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_3_prefixed0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json deleted file mode 100644 index 43ddff295..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallRipemd160_4" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json deleted file mode 100644 index 1b6fe0b68..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallRipemd160_4_gas719" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json deleted file mode 100644 index 00a426ae2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallRipemd160_5" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json deleted file mode 100644 index fc2835a96..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ [[ 2 ]] (STATICCALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json deleted file mode 100644 index 972831d81..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "static_CallSha256_1_nonzeroValue" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "100000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000002" : { - "balance" : "19" - }, - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "200000000", - "code" : "{ [[ 2 ]] (STATICCALL 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json deleted file mode 100644 index 537742d43..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json deleted file mode 100644 index bbfeb4f0f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json deleted file mode 100644 index b6069d283..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_3_postfix0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json deleted file mode 100644 index 0b5f19f68..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_3_prefix0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json deleted file mode 100644 index dd39770c1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_4" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json deleted file mode 100644 index 0df5e39b2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_CallSha256_4_gas99" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "365224" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json deleted file mode 100644 index 158feec90..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "static_CallSha256_5" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "20000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json deleted file mode 100644 index 75e01a3d3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_CallToNameRegistrator0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json deleted file mode 100644 index e46c436e3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigLeftFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorAddressTooBigLeft" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json deleted file mode 100644 index 6dd4fe67e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorAddressTooBigRightFiller.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_CallToNameRegistratorAddressTooBigRight" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json deleted file mode 100644 index 5152cc62f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorMemOOGAndInsufficientBalance" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0xffffffffffff 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json deleted file mode 100644 index 42ef2c20f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory0Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorNotMuchMemory0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json deleted file mode 100644 index 85994c211..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorNotMuchMemory1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorNotMuchMemory1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json deleted file mode 100644 index ddd611c2b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorOutOfGasFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorOutOfGas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json deleted file mode 100644 index 6e528c503..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory0Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorTooMuchMemory0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json deleted file mode 100644 index e241cb636..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorTooMuchMemory1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json deleted file mode 100644 index 25fa677a1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorTooMuchMemory2Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorTooMuchMemory2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json deleted file mode 100644 index c836df8a0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistratorZeorSizeMemExpansionFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToNameRegistratorZeorSizeMemExpansion" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json deleted file mode 100644 index f621d4283..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_CallToReturn1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 31 1) [[ 1 ]] @0 }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155602a601f536001601ff3", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json deleted file mode 100644 index fe07ae803..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_CalltoReturn2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "nonce" : "0", - "storage" : { - "0x" : "0x00" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 5000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155603760005360026000f2", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json deleted file mode 100644 index f1042c54d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "static_ExecuteCallThatAskForeGasThenTrabsactionHas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{ [[1]] (STATICCALL 600000 0x1000000000000000000000000000000000000001 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "100000", - "code" : "{ [[1]] 12 }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "100000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json deleted file mode 100644 index 4f275d409..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_InternalCallHittingGasLimit2" : { - "env" : { - "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "47766", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{[[1]]55}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "47766" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json deleted file mode 100644 index f097c8d68..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_InternalCallHittingGasLimit" : { - "env" : { - "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "22000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "{ (STATICCALL 5000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{[[1]]55}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "21100" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json deleted file mode 100644 index 114b829b2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitSuccessFiller.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_InternalCallHittingGasLimitSuccess" : { - "env" : { - "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "220000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "storage" : { - "0x01" : "0x37" - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{ (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{[[1]]55}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json deleted file mode 100644 index 99233eefc..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_InternlCallStoreClearsOOG" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "20" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "//" : "gas = 19 going OOG, gas = 20 fine", - "balance" : "10", - "code" : "{ (STATICCALL 40000 0 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json deleted file mode 100644 index 85d7dfff2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsSuccesFiller.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_InternlCallStoreClearsSucces" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "1", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "19" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "//" : "gas = 19 going OOG, gas = 20 fine", - "balance" : "10", - "code" : "{ (STATICCALL 100000 0 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json deleted file mode 100644 index ee9372be4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_LoopCallsDepthThenRevert2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x03", - "nonce" : "0x01" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000000000000000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "10", - "code" : "create in init code on depth = 1024. account should not be created", - "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1023)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7ffffffffffffff0" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json deleted file mode 100644 index 584268c12..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "static_LoopCallsDepthThenRevert3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x01", - "nonce" : "0x02" - }, - "cd6807039caffddbd1c28a749ec91bef15f448e5" : { - "balance" : "0x02", - "nonce" : "0x01" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000000000000000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "10", - "code" : "create in init code on depth = 1023. account would be created", - "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1022)) [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7ffffffffffffff0" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json deleted file mode 100644 index b5ba25866..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_LoopCallsDepthThenRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999990000000" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x69" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x69" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (+ (SLOAD 0) 1) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json deleted file mode 100644 index 2e4dd1720..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "static_LoopCallsThenRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "850" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "850" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 1, - "value" : -1 - }, - "network" : ["Homestead", "Frontier"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "850" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ (JUMPDEST) [[0]] (- (SLOAD 0) 1) (STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 0 (SLOAD 0))}", - "nonce" : "0", - "storage" : { - "0x00" : "850" - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "10000000", "9000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json deleted file mode 100644 index 47f3819ef..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_NewGasPriceForCodesFiller.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "static_NewGasPriceForCodes" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x12", - "0x01" : "0x20", - "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", - "0x03" : "0xe8d49be840", - "0x04" : "0x12", - "0x07" : "0x01", - "0x08" : "0x01", - "0x0a" : "0x05e276", - "0x64" : "0x11" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x12", - "0x01" : "0x20", - "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", - "0x03" : "0xe8d49be840", - "0x04" : "0x12", - "0x07" : "0x01", - "0x08" : "0x01", - "0x0a" : "0x06441e", - "0x64" : "0x11" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x12", - "0x01" : "0", - "0x02" : "0", - "0x03" : "0", - "0x04" : "0", - "0x07" : "0", - "0x08" : "0", - "0x0a" : "0", - "0x64" : "0" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x12", - "0x01" : "0x20", - "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", - "0x03" : "0xe8d49be840", - "0x04" : "0x12", - "0x07" : "0x01", - "0x08" : "0x01", - "0x0a" : "0x05f428", - "0x64" : "0x11" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000010" : { - "balance" : "111", - "code" : "0x1122334455667788991011121314151617181920212223242526272829303132", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000011" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 100 0x11) }", - "storage": { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "Test gasPrice of thise codes after EIP150 transition", - "code" : "{ (SSTORE 1 (EXTCODESIZE 0x1000000000000000000000000000000000000010)) (EXTCODECOPY 0x1000000000000000000000000000000000000010 0 0 20) (SSTORE 2 (MLOAD 0)) (SSTORE 4 (SLOAD 0)) (SSTORE 5 (STATICCALL 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 6 (CALLCODE 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 7 (DELEGATECALL 30000 0x1000000000000000000000000000000000000011 0 0 0 0)) (SSTORE 8 (STATICCALL 30000 0x1000000000000000000000000000000000000013 0 0 0 0 0)) (SSTORE 3 (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)) (SSTORE 10 (GAS)) }", - "storage": { - "0x00" : "0x12" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json deleted file mode 100644 index ecf078139..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL2Filler.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "static_NonZeroValue_CALL2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x63", - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x07bac9" - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x63", - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x07bd5d" - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json deleted file mode 100644 index 2e30f0fdb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToEmptyFiller.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "static_NonZeroValue_CALL_ToEmpty" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x07bac9" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x081c71" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x081f05" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json deleted file mode 100644 index 90ad0abee..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_NonZeroValue_CALL_ToNonNonZeroBalance" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x085709" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x64" : "0x08599d" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json deleted file mode 100644 index 143d56246..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_NonZeroValue_CALL_ToOneStorageKeyFiller.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "static_NonZeroValue_CALL_ToOneStorageKey" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "storage" : { - "0x00" : "0x01" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x07bac9" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "storage" : { - "0x00" : "0x01" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x081c71" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "storage" : { - "0x00" : "0x01" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x081f05" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - "0x00" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json deleted file mode 100644 index 905297c4f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_PostToReturn1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](STATICCALL 30000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 0 ) [[2]] 1 }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x603760005360026000f2", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json deleted file mode 100644 index 7cb37c344..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "static_RETURN_Bounds" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1", - "storage" : { - "0x01" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x01", - "0x05" : "0x01", - "0x06" : "0x01", - "0x07" : "0x01", - "0x08" : "0x01", - "0x09" : "0x01", - "0x0a" : "0x01", - "0x0b" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ (RETURN 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000004" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000005" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000006" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000007" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xfffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000008" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000009" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000010" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000011" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000012" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffff 0xfffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000013" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffff 0xffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000014" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000015" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000016" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "0x7fffffffffffffff" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "1" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json deleted file mode 100644 index 73d5c08f0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "static_RETURN_BoundsOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "0", - "storage" : { - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ (RETURN 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000004" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000005" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000006" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000007" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xfffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000008" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000009" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000010" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000011" : { - "balance" : "0", - "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000012" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffff 0xfffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000013" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffff 0xffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000014" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000015" : { - "balance" : "0", - "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000016" : { - "balance" : "0", - "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "1" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json deleted file mode 100644 index 57e5fa043..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGasAsk" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x06e228" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06aff9" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0", - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json deleted file mode 100644 index de8687167..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x752e" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06aff9" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x752e" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06b28d" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json deleted file mode 100644 index c871aa37c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferAskFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGasValueTransferAsk" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x06c889" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x0695cd" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0", - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json deleted file mode 100644 index d696fd52c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGasValueTransfer" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x7e2a" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x0695cd" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x7e2a" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x069861" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json deleted file mode 100644 index c2c99289d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryAskFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGasValueTransferMemoryAsk" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x06c52e" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x069265" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0", - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json deleted file mode 100644 index 0695ae442..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasValueTransferMemoryFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallGasValueTransferMemory" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x7e2a" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x069265" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x7e2a" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x0694f9" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json deleted file mode 100644 index c4770c381..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasAskFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallMemoryGasAsk" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x06dece" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06ac91" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0", - "0x01" : "0" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json deleted file mode 100644 index a2c81f978..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RawCallMemoryGasFiller.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_RawCallMemoryGas" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x752e" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06ac91" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x752e" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x074f16", - "0x01" : "0x06af25" - } - } - } - } - ], - "pre" : - { - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "{ [[2]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]] (GAS) (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json deleted file mode 100644 index 4d1c7bbf4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000Filler.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_Return50000 " : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "88250000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffabd696f", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x600161c34f35f3", - "nonce" : "0x00", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05429690", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", - "nonce" : "0x00", - "storage" : { - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffff", - "code" : "{ (RETURN (CALLDATALOAD 49999) 1) }", - "nonce" : "0", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffff", - "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "88250000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json deleted file mode 100644 index 36fff2e56..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_Return50000_2 " : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "88250000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffffffffffffffffabd696f", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x61c34f356000526001600051f3", - "nonce" : "0x00", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05429690", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", - "nonce" : "0x00", - "storage" : { - } - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffff", - "code" : "{ [ 0 ] (CALLDATALOAD 49999) (RETURN @0 1) }", - "nonce" : "0", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xfffffffffffff", - "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "88250000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json deleted file mode 100644 index f9474cfc9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "static_ReturnTest2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150"], - "result" : { - "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x" : "0x15", - "0x01" : "0x3f" - } - } - } - } - ], - "pre" : { - "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{(MSTORE 0 0x15)(STATICCALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "250000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json deleted file mode 100644 index d98239273..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_ReturnTest" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150"], - "result" : { - "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x" : "0x15" - } - } - } - } - ], - "pre" : { - "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{(STATICCALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "{(MSTORE 0 0x15) (RETURN 31 1)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "300000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json deleted file mode 100644 index f3ef13ce0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "static_RevertDepth2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 150000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (STATICCALL 150000 0xd000000000000000000000000000000000000000 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0)}", - "nonce" : "", - "storage" : { - } - }, - "c000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", - "nonce" : "0", - "storage" : { - } - }, - "d000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (GAS)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : "In transaction T to A, A call B call C, then A call D calls C, D fails after calling C.", - "data" : [ - "" - ], - "gasLimit" : [ - "170685" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json deleted file mode 100644 index 46189db1a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateAddressCollisionFiller.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "static_RevertDepthCreateAddressCollision" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["EIP158"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x06", - "code" : "0x", - "nonce" : "55", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x02" : "0x08", - "0x03" : "0x0c" - } - } - } - }, - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["EIP150"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x06", - "code" : "0x", - "nonce" : "54", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x02" : "0x08", - "0x03" : "0x0c" - } - } - } - }, - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x05", - "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "OOG in subcall", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - }, - "network" : ["ALL"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x06", - "code" : "0x", - "nonce" : "54", - "storage" : { - "0x00" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "OOG after subcall", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x05", - "code" : "0x", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "OOG after subcall", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - }, - "network" : ["Homestead", "Frontier"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x05", - "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "double OOG", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "network" : ["ALL"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x05", - "code" : "0x", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "5", - "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", - "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", - "data" : [ - "000000000000000000000000000000000000000000000000000000000000ea60", - "000000000000000000000000000000000000000000000000000000000001ea60" - ], - "gasLimit" : [ - "110000", "160000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "3e180b1862f9d158abb5e519a6d8605540c23682", - "value" : [ - "1", "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json deleted file mode 100644 index a0a45db29..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepthCreateOOGFiller.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "static_RevertDepthCreateOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["EIP158"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "nonce" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x02" : "0x08", - "0x03" : "0x0c" - } - } - } - }, - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["EIP150"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "nonce" : "0" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x02" : "0x08", - "0x03" : "0x0c" - } - } - } - }, - { - "comment" : "NO OOG", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "shouldnotexist" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "OOG in subcall", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - }, - "network" : ["ALL"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "shouldnotexist" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x04" : "0x0c" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "comment" : "OOG after subcall / double OOG", - "indexes" : { - "data" : [1, 0], - "gas" : 0, - "value" : 0 - }, - "network" : ["ALL"], - "result" : { - "3e180b1862f9d158abb5e519a6d8605540c23682" : { - "shouldnotexist" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "5", - "code" : "{ [[0]] 1 [[1]] (STATICCALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", - "nonce" : "54", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.", - "data" : "d0g0 - double OOG, d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG", - "data" : [ - "000000000000000000000000000000000000000000000000000000000000ea60", - "000000000000000000000000000000000000000000000000000000000001ea60" - ], - "gasLimit" : [ - "110000", "160000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "1", "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json deleted file mode 100644 index 8e07bc0df..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "static_RevertOpcodeCalls" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x0a" : "0x01" - } - }, - "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x0e" - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x0a" : "0x01" - } - }, - "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x00" : "0x00", - "0x02" : "0x0e" - } - } - } - }, - { - "comment" : "OOG", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x0a" : "0x01" - } - }, - "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x00" : "0x00", - "0x02" : "0x0e" - } - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x0a" : "0x01" - } - }, - "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x00" : "0x00", - "0x02" : "0x0e" - } - } - } - }, - { - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x0a" : "0x01" - } - }, - "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x00" : "0x01", - "0x02" : "0x0e" - } - }, - "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x04" : "0x00", - "0x05" : "0x0e" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[10]] (STATICCALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[4]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x000000000000000000000000b0005374fce5edbc8e2a8697c15331677e6ebf0b", - "0x000000000000000000000000b1005374fce5edbc8e2a8697c15331677e6ebf0b", - "0x000000000000000000000000b2005374fce5edbc8e2a8697c15331677e6ebf0b", - "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b" - ], - "gasLimit" : [ - "460000", "88000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json deleted file mode 100644 index 90f01a82d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeDirectCallFiller.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "static_RevertOpcodeDirectCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], - "result" : { - "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0", - "storage" : { - "0x00" : "0x00", - "0x02" : "0x0e" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : 1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[10]] (STATICCALL 60000 (CALLDATALOAD 0) 0 0 0 0 0)}", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "!!! STRANGE: CALL works, but if called from 094... it wont work. even if gas is enough. seems to be OOG.", - "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1", - "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b" - ], - "gasLimit" : [ - "460000", "68000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json deleted file mode 100644 index 9dbcdee84..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeMultipleSubCallsFiller.json +++ /dev/null @@ -1,412 +0,0 @@ -{ - "static_RevertOpcodeMultipleSubCalls" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c" - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a000000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a100000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a200000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a300000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : [2], - "value" : [1,0] - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a000000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "a100000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "a200000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "a300000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : [1], - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "0x01" - }, - "a000000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - "0x04" : "0x00", - "0x05" : "0x00", - "0x0a" : "0x00", - "0x0b" : "0x00", - "0x0c" : "0x00" - } - }, - "a100000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "a200000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "a300000000000000000000000000000000000000" : { - "nonce" : "0x00", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "c000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "d000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "ac00000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (STATICCALL 260000 (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }", - "nonce" : "0", - "storage" : {} - }, - "a000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "simple calls", - "code" : "call -> callA-> revert | callB -> revert | some code * and OOG scenarious", - "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](STATICCALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", - "nonce" : "", - "storage" : { - } - }, - "a100000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[10]](CALLCODE 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](CALLCODE 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", - "nonce" : "", - "storage" : { - } - }, - "a200000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[10]](DELEGATECALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](DELEGATECALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0) [[4]]12 [[5]]12 }", - "nonce" : "", - "storage" : { - } - }, - "a300000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[10]](STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", - "nonce" : "", - "storage" : { - } - }, - "b000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[1]] 12 (REVERT 0 1) }", - "nonce" : "", - "storage" : { - } - }, - "c000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[2]] 12 (REVERT 0 1) }", - "nonce" : "", - "storage" : { - } - }, - "d000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[3]] 12 (REVERT 0 1) }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "000000000000000000000000a000000000000000000000000000000000000000", - "000000000000000000000000a100000000000000000000000000000000000000", - "000000000000000000000000a200000000000000000000000000000000000000", - "000000000000000000000000a300000000000000000000000000000000000000" - ], - "gasLimit" : [ - "800000", "140000", "160000", "50000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "ac00000000000000000000000000000000000000", - "value" : [ - "0", "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json deleted file mode 100644 index 4bd1f6b65..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeReturnFiller.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "static_RevertOpcodeReturn" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "a000000000000000000000000000000000000000" : { - "balance" : "0", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x726576657274206d657373616765" - } - }, - "a100000000000000000000000000000000000000" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : [1,2,3,4,5], - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "a000000000000000000000000000000000000000" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "a100000000000000000000000000000000000000" : { - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ [[1]](STATICCALL 150000 (CALLDATALOAD 0) 0 0 0 0 32) [[2]] (MLOAD 0) }", - "nonce" : "", - "storage" : { - } - }, - "a100000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 32) }", - "nonce" : "0", - "storage" : { - } - }, - "a200000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a300000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0xfffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a400000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x0100 0x00) }", - "nonce" : "0", - "storage" : { - } - }, - "a500000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x01 0x00) }", - "nonce" : "0", - "storage" : { - } - }, - "a600000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0xfffffffffffffffffffffffffffff 0x00) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "000000000000000000000000a100000000000000000000000000000000000000", - "000000000000000000000000a200000000000000000000000000000000000000", - "000000000000000000000000a300000000000000000000000000000000000000", - "000000000000000000000000a400000000000000000000000000000000000000", - "000000000000000000000000a500000000000000000000000000000000000000", - "000000000000000000000000a600000000000000000000000000000000000000" - ], - "gasLimit" : [ - "800000", "70000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json deleted file mode 100644 index 9386a4766..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrecompiledTouchFiller.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "static_RevertPrecompiledTouch" : { - "env" : { - "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "4012015", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "0000000000000000000000000000000000000001" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000002" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000003" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000004" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000005" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000006" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000007" : { - "balance" : "0" - }, - "0000000000000000000000000000000000000008" : { - "balance" : "0" - } - } - } - ], - "pre" : { - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "code" : "{ (STATICCALL 50000 1 0 0 0 0 0) (STATICCALL 50000 2 0 0 0 0 0) (STATICCALL 50000 3 0 0 0 0 0) (STATICCALL 50000 4 0 0 0 0 0) (STATICCALL 50000 5 0 0 0 0 0) (STATICCALL 50000 6 0 0 0 0 0) (STATICCALL 50000 7 0 0 0 0 0) (STATICCALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "1", - "storage" : { - } - }, - "0000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000004" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000005" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000006" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000007" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "0000000000000000000000000000000000000008" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "60000" - ], - "gasPrice" : "1", - "nonce" : "1", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json deleted file mode 100644 index 6cfc6c5e5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallFiller.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_RevertPrefoundCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", - "data" : [ - "" - ], - "gasLimit" : [ - "94000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json deleted file mode 100644 index fa7a0ac4d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundCallOOGFiller.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "static_RevertPrefoundCallOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "1", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", - "data" : [ - "" - ], - "gasLimit" : [ - "63000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json deleted file mode 100644 index c63955789..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallFiller.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_RevertPrefoundEmptyCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "shouldnotexist" : "1" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", - "data" : [ - "" - ], - "gasLimit" : [ - "94000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json deleted file mode 100644 index 3ed5dbbc6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_RevertPrefoundEmptyCallOOGFiller.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "static_RevertPrefoundEmptyCallOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a000000000000000000000000000000000000000" : { - "balance" : "1", - "code" : "{ [[0]] (STATICCALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", - "nonce" : "", - "storage" : { - } - } - }, - "transaction" : { - "data" : "so X has nothing but the balance Transaction calls A A creates X A went OOG", - "data" : [ - "" - ], - "gasLimit" : [ - "63000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "a000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json deleted file mode 100644 index f5dac0424..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsOOGFiller.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_StoreClearsAndInternlCallStoreClearsOOG" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "20", - "storage" : { - "0x04" : "0x0c" - } - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "500000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 20000 0 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "200000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json deleted file mode 100644 index 9d3a330f1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_StoreClearsAndInternlCallStoreClearsSuccessFiller.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "static_StoreClearsAndInternlCallStoreClearsSuccess" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "1", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "19", - "storage" : { - "0x04" : "0x0c" - } - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "500000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "//" : "gas = 19 going OOG, gas = 20 fine", - "balance" : "10", - "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (STATICCALL 50000 0 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - "0x" : "0x0c", - "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "200000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json deleted file mode 100644 index 726a622de..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToExistingContractFiller.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_SuicideToExistingContract" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000118" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x08bf58" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000118" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x08d574" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "check gas spent on suicide known contract on EIP150", - "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - }, - "1000000000000000000000000000000000000118" : { - "balance" : "0", - "nonce" : "0", - "code" : "Suicide to existing account", - "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json deleted file mode 100644 index 904aa1f19..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicideToNotExistingContractFiller.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "static_SuicideToNotExistingContract" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150"], - "result" : { - "1000000000000000000000000000000000000116" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x085db0" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158"], - "result" : { - "1000000000000000000000000000000000000116" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x08bf58" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000116" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x08d574" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "check gas spent on suicide to unknown contract on EIP150", - "code" : "{ (STATICCALL 60000 0x1000000000000000000000000000000000000116 0 0 0 0 0) [[1]] (GAS) }", - "storage": { - } - }, - "1000000000000000000000000000000000000116" : { - "balance" : "0", - "nonce" : "0", - "code" : "Suicide to not existing account", - "code" : "{ (SELFDESTRUCT 0x2000000000000000000000000000000000000115) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json deleted file mode 100644 index 1eb733f3d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_SuicidesAndInternlCallSuicidesBonusGasAtCallFailed" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "20", - "code" : "0x6001ff" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 0 0 0 0 0) (SELFDESTRUCT 0)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "50000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json deleted file mode 100644 index c8f980f7a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_SuicidesAndInternlCallSuicidesBonusGasAtCall" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "0000000000000000000000000000000000000001" : { - "balance" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "0000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "code" : "{(STATICCALL 0 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "50000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json deleted file mode 100644 index cea315bc1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesOOGFiller.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "static_SuicidesAndInternlCallSuicidesOOG" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "0x6001ff" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10", - "code" : "{(STATICCALL 22000 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "50000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json deleted file mode 100644 index a9dc7b5cf..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesAndInternlCallSuicidesSuccessFiller.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "static_SuicidesAndInternlCallSuicidesSuccess" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "0000000000000000000000000000000000000001" : { - "balance" : "1", - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "0000000000000000000000000000000000000001" : { - "balance" : "1", - "storage" : { - } - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "0", - "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "180000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000", - "code" : "{(STATICCALL (CALLDATALOAD 0) 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00000000000000000000000000000000000000000000000000000000000055f0", "0x000000000000000000000000000000000000000000000000000000000000aaf0" - ], - "gasLimit" : [ - "150000" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json deleted file mode 100644 index 2f4f714b2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_SuicidesStopAfterSuicideFiller.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "static_SuicidesStopAfterSuicide" : { - "env" : { - "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "100000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "0000000000000000000000000000000000000000" : { - "code" : "0x6001ff", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - } - } - } - ], - "pre" : { - "0000000000000000000000000000000000000000" : { - "balance" : "1110", - "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "122000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10000", - "code" : "{(SELFDESTRUCT 0) (STATICCALL 30000 0x0000000000000000000000000000000000000000 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "83700" - ], - "gasPrice" : "1", - "nonce" : "", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json deleted file mode 100644 index b902b60e0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert2Filler.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_TouchToEmptyAccountRevert2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", - "storage": { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[2]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[3]] 1 }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "77400" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json deleted file mode 100644 index 2be6fe5b2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevert3Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_TouchToEmptyAccountRevert3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](STATICCALL 30000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]](STATICCALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", - "storage": { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[2]](STATICCALL 30000 0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[3]] 1 }", - "storage": { - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", - "storage": { - } - }, - "e94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "82400", "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json deleted file mode 100644 index c90aaaf3f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_TouchToEmptyAccountRevertFiller.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_TouchToEmptyAccountRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000000" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](STATICCALL 30000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 1 }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[1]](STATICCALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "70000", "500000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json deleted file mode 100644 index c9246cb52..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64e0Filler.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "static_Transaction64Rule_d64e0" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000118" : { - "storage" : { - "0x01" : "0x00" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x021f34", - "0x02" : "0xe3df" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "check gas spent on suicide known contract on EIP150", - "code" : "{ [[0]] (GAS) (STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", - "storage": { - } - }, - "1000000000000000000000000000000000000118" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[1]] 12 }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160062" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json deleted file mode 100644 index ebaecfe78..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64m1Filler.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "static_Transaction64Rule_d64m1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000118" : { - "storage" : { - "0x01" : "0x0c" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x021f33", - "0x02" : "0x018015" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000118" : { - "storage" : { - "0x01" : "0" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0", - "0x02" : "0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "check gas spent on suicide known contract on EIP150", - "code" : "{ [[0]] (GAS) (STATICCALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", - "storage": { - } - }, - "1000000000000000000000000000000000000118" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[1]] 12 }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160061" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json deleted file mode 100644 index 56231773b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Transaction64Rule_d64p1Filler.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "static_Transaction64Rule_d64p1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000118" : { - "storage" : { - "0x01" : "0x00" - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x021f35", - "0x01" : "0x00", - "0x02" : "0xd057" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "check gas spent on suicide known contract on EIP150", - "code" : "{ [[0]] (GAS) [[1]](STATICCALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0) [[2]] (GAS) }", - "storage": { - } - }, - "1000000000000000000000000000000000000118" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[1]] 12 }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "160063" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json deleted file mode 100644 index 1405535ea..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL2Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_ZeroValue_CALL2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x0836a0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "comment" : " Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json deleted file mode 100644 index 711702a56..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "static_ZeroValue_CALL_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x64" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "135000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json deleted file mode 100644 index b1c983b02..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty2Filler.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "static_ZeroValue_CALL_ToEmpty2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x0836a0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json deleted file mode 100644 index c10db9c3c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToEmpty_OOGRevertFiller.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "static_ZeroValue_CALL_ToEmpty_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x64" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "135000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json deleted file mode 100644 index b77d0cfda..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance2Filler.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "static_ZeroValue_CALL_ToNonZeroBalance2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x0836a0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json deleted file mode 100644 index 1d9e26aa3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "static_ZeroValue_CALL_ToNonZeroBalance_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x64" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "135000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json deleted file mode 100644 index c88b1bb8e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey2Filler.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_ZeroValue_CALL_ToOneStorageKey2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : 0, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x08d5b6", - "0x01" : "0x01", - "0x64" : "0x0836a0" - } - } - } - }, - { - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "shouldnotexist" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x6fffffffffffade6", - "0x01" : "0x01", - "0x64" : "0x6fffffffffff0ed0" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - "0x00" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "600000", "0x6ffffffffffffff0" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json deleted file mode 100644 index 9dd6f18c9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "static_ZeroValue_CALL_ToOneStorageKey_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { "0x00" : "0x01" } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x64" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - "0x00" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "135000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json deleted file mode 100644 index 7542568e9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "static_ZeroValue_SELFDESTRUCT_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (STATICCALL 40000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "100000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json deleted file mode 100644 index ca4053a79..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "static_ZeroValue_SELFDESTRUCT_ToEmpty_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", - "storage": { - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "75000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json deleted file mode 100644 index b43357ab1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "static_ZeroValue_SELFDESTRUCT_ToNonZeroBalance_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : {} - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100" - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", - "storage": { - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100", - "nonce" : "0", - "code" : "", - "storage": { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "75000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json deleted file mode 100644 index 3d7aee123..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "static_ZeroValue_SELFDESTRUCT_ToOneStorageKey_OOGRevert" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "nonce" : "1" - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { "0x00" : "0x01" } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { "0x00" : "0x01" } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (STATICCALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", - "storage": { - "0x00" : "0x01" - } - }, - "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", - "storage": { - "0x00" : "0x01" - } - }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0", - "nonce" : "0", - "code" : "", - "storage": { - "0x00" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "75000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json deleted file mode 100644 index 10caab2e8..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x6001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json deleted file mode 100644 index 0a3a965be..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x6001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json deleted file mode 100644 index da198b243..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput3Fail" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x016001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json deleted file mode 100644 index da6adbe0d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x6001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json deleted file mode 100644 index dd9d4fd97..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput3partialFail" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x016001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json deleted file mode 100644 index c973f8b04..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "static_callOutput3partial" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "0x6001600101600055", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "1000000" - ], - "gasPrice" : "0", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json deleted file mode 100644 index 840350c7c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_callWithHighValueAndGasOOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100000000000000000000 0 64 0 2 ) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155603760005360026000f3", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json deleted file mode 100644 index b7183b50b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "static_callWithHighValueAndOOGatTxLevel" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "3000000" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "33424" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "100000", - "code" : "{ [[ 0 ]] (STATICCALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100001 0 0 0 0 ) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155603760005360026000f3", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json deleted file mode 100644 index adb79686e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "static_callWithHighValue" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000000000000000001 0 64 0 2 ) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155603760005360026000f3", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json deleted file mode 100644 index 60cc81e44..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_callWithHighValueOOGinCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x01" - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a763155a" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150" ], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x00" : "0x01" - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999999999939270" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "100000", - "code" : "{ [[ 0 ]] (ADD (STATICCALL 10000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0 ) 1) }", - "nonce" : "0", - "storage" : { - } - }, - "945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "23", - "code" : "0x6001600155603760005360026000f3", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json deleted file mode 100644 index 802ffb154..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "static_call_OOG_additionalGasCosts1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP150"], - "result" : { - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "30000" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999999999970000" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158"], - "result" : { - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "21727" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "999999999999978273" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json deleted file mode 100644 index 8ab951dec..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "static_call_OOG_additionalGasCosts2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000001" : { - "balance" : "0" - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "0x7530" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7638ad0" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ (STATICCALL 6000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json index 8dff7492d..f0049132e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json @@ -38,7 +38,7 @@ }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "code" : "{ (MSTORE 32 1) (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json index 4b0326f33..59681b225 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json @@ -91,7 +91,7 @@ }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "code" : "{ (MSTORE 1 0x11223344) }", "nonce" : "0", "storage" : { } @@ -112,7 +112,7 @@ }, "2000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ (MSTORE 4 1) (CALLCODE 250000 0x2000000000000000000000000000000000000003 3 0 64 0 64 ) (MSTORE 6 1) }", + "code" : "{ (MSTORE 4 1) (CALLCODE 250000 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 6 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json deleted file mode 100644 index e5aa299f0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01Filler.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "static_callcallcode_01" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00", - "0xe6" : "0x00", - "0xe8" : "0x00", - "0xec" : "0x00", - "0xee" : "0x00", - "0xf0" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x04" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json index 50c85e546..fc5ded686 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json @@ -10,43 +10,76 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00", - "0xe6" : "0x00", - "0xe8" : "0x00", - "0xec" : "0x00", - "0xee" : "0x00", - "0xf0" : "0x00" - } - } + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d031d" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1d3d" + } + } } } ], "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 32 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 32 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "code" : "{ (MSTORE 0 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 250000 0x2000000000000000000000000000000000000002 0 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x11223344) }", "nonce" : "0", "storage" : { } @@ -61,7 +94,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ "3000000" @@ -69,7 +103,7 @@ "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", + "to" : "a000000000000000000000000000000000000000", "value" : [ "0" ] diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json deleted file mode 100644 index bf648b92b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGEFiller.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "static_callcallcode_01_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json index 40d604afa..174f238e2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json @@ -11,40 +11,28 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - } + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac5" + } + } } } ], "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (CALLCODE 20020 (CALLDATALOAD 0) 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } @@ -56,6 +44,13 @@ "storage" : { } }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", "code" : "", @@ -66,7 +61,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json index 7be63eb4a..e8857d519 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json @@ -11,10 +11,15 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000" + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x2b1467" + } + }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", @@ -28,21 +33,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SSTORE 2 1) }", + "code" : "{ (MSTORE 2 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json index 5c968fbbf..955ff3ee7 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json @@ -20,7 +20,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x02" : "0x00" + "0x01" : "0x2b1467" } }, "1000000000000000000000000000000000000001" : { @@ -45,21 +45,21 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "10000000000", - "code" : "{ (SSTORE 2 1) }", + "code" : "{ (MSTORE 2 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json index f4db8c1ce..06c3a9eac 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json @@ -19,32 +19,8 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x05" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2d1de0" } } } @@ -53,28 +29,28 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "code" : "{ (MSTORE 1 1) }", "nonce" : "0", "storage" : { } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json index f786b2bb0..59d6a4a9c 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json @@ -10,25 +10,25 @@ }, "expect" : [ { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], "result" : { - "1000000000000000000000000000000000000001" : { + "1000000000000000000000000000000000000000" : { "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2d02d6" } - }, - "1000000000000000000000000000000000000003" : { + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { "storage" : { - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" + "0x00" : "0x01", + "0x01" : "0x2d1d02" } } } @@ -37,28 +37,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 350000 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -73,7 +80,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "3000000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json index 5ba0658dc..465327a5c 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json @@ -19,32 +19,8 @@ "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" + "0x00" : "0x01", + "0x01" : "0x01a7d2" } } } @@ -53,28 +29,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "code" : "{ (DELEGATECALL 100000 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 1 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (STORE 1 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -89,7 +72,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json index 068998625..0a9268d98 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json @@ -11,35 +11,12 @@ "expect" : [ { "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], + "network" : ["Metropolis"], "result" : { "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" + "0x00" : "0x01", + "0x01" : "0x01a7e5" } } } @@ -48,28 +25,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 32 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", "nonce" : "0", "storage" : { } @@ -84,7 +68,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000003", + "0x0000000000000000000000002000000000000000000000000000000000000003" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json index 95fcbea0f..5ccac8c53 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json @@ -16,30 +16,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" + "0x01" : "0x014b7e" } } } @@ -48,28 +25,35 @@ "pre" : { "1000000000000000000000000000000000000000" : { "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000001" : { "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 1 1) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", "nonce" : "0", "storage" : { } }, "1000000000000000000000000000000000000003" : { "balance" : "0", - "code" : "{ (SSTORE 3 1) }", + "code" : "{ (MSTORE 3 1) }", "nonce" : "0", "storage" : { } @@ -84,7 +68,8 @@ }, "transaction" : { "data" : [ - "" + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ "172000" diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json deleted file mode 100644 index 75b715624..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json deleted file mode 100644 index ace0681a5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json deleted file mode 100644 index 628c1a445..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json deleted file mode 100644 index 5d8ba9ade..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json deleted file mode 100644 index b18faba61..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json deleted file mode 100644 index b4352fe45..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json deleted file mode 100644 index 2c3feb0bb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json deleted file mode 100644 index e44dfdf57..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json deleted file mode 100644 index d5b1c0d48..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index 7058e4952..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_callcallcodecall_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json deleted file mode 100644 index 2e416307d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_callcallcodecall_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json deleted file mode 100644 index 2a28ffbc0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "static_callcallcodecallcode_011" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json deleted file mode 100644 index a965eae82..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_callcallcodecallcode_011_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json deleted file mode 100644 index 002e64df2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json deleted file mode 100644 index ef3f8f608..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGE_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json deleted file mode 100644 index 1d775aa1e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMAfter2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json deleted file mode 100644 index 4815b0cbd..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json deleted file mode 100644 index 5a9d87395..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMAfter_1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json deleted file mode 100644 index a1120ab5d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMAfter_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json deleted file mode 100644 index f04feb2fc..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json deleted file mode 100644 index fc519188d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcallcodecallcode_011_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json deleted file mode 100644 index fd5af0f97..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "static_callcallcodecallcode_011_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json deleted file mode 100644 index 64a5a5dce..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "static_callcallcodecallcode_011_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json deleted file mode 100644 index 75ea9fc86..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "static_callcallcodecallcode_011_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json deleted file mode 100644 index 44ec8f86e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "static_callcallcodecallcode_011_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index 530e2b912..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "static_callcallcodecallcode_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json deleted file mode 100644 index f159eb182..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "static_callcallcodecallcode_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026070" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566204" - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568184" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json deleted file mode 100644 index 9e0049e1f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "static_callcode_checkPC" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier","Homestead", "EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x03" : "0x25" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[3]] (PC)}", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json deleted file mode 100644 index 3f16f0494..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "static_callcodecall_10" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00", - "0xe6" : "0x00", - "0xe8" : "0x00", - "0xec" : "0x00", - "0xee" : "0x00", - "0xf0" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x01", - "0xe6" : "0x1000000000000000000000000000000000000002", - "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0xec" : "0x40", - "0xee" : "0x21", - "0xf0" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json deleted file mode 100644 index b6e80bd9f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "static_callcodecall_10_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x02", - "0xe6" : "0x1000000000000000000000000000000000000002", - "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0xec" : "0x40", - "0xee" : "0x21", - "0xf0" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json deleted file mode 100644 index 07a128805..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "static_callcodecall_10_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json deleted file mode 100644 index 10738e848..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_callcodecall_10_OOGE_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (SSTORE 2 1) (MSTORE 2 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json deleted file mode 100644 index 6458255d3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "static_callcodecall_10_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 2 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json deleted file mode 100644 index b8e44ecf8..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcodecall_10_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x01", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 2 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json deleted file mode 100644 index 7df498568..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "static_callcodecallcall_100" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x05" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x01" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000002", - "0x07" : "0x02" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER))}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json deleted file mode 100644 index 3ed37f54e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "static_callcodecallcall_100_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x01" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000002", - "0x07" : "0x03" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json deleted file mode 100644 index 34813f3b0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "static_callcodecallcall_100_OOGE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json deleted file mode 100644 index 9b0aef21c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "static_callcodecallcall_100_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json deleted file mode 100644 index 230782133..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMAfter2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json deleted file mode 100644 index 95dfa9a21..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json deleted file mode 100644 index ee5e3865e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMAfter_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json deleted file mode 100644 index 7d8fc6515..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMAfter_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json deleted file mode 100644 index 8680d711f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json deleted file mode 100644 index 2b6c46614..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcall_100_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json deleted file mode 100644 index aa494d02b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcodecallcall_100_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "20000000000", - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json deleted file mode 100644 index d992a2411..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "static_callcodecallcall_100_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json deleted file mode 100644 index d11663f35..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "static_callcodecallcall_100_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json deleted file mode 100644 index 2473dd1d9..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "static_callcodecallcall_100_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index e263cc347..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "static_callcodecallcall_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json deleted file mode 100644 index ff9c7301c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "static_callcodecallcall_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "30000000" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566207" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568187" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json deleted file mode 100644 index 019dac9e6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "static_callcodecallcallcode_101" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x05" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x06" : "0x00", - "0x07" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000002", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x06" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 6 (CALLER)) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json deleted file mode 100644 index b2456997f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcodecallcallcode_101_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000002", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000002", - "0x07" : "0x03" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (STATICCALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json deleted file mode 100644 index 393b3aade..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json deleted file mode 100644 index 9f8373f90..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGE_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json deleted file mode 100644 index d23557ff2..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMAfter2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json deleted file mode 100644 index 7b5f65d33..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json deleted file mode 100644 index 5c1e06d7b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMAfter_1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json deleted file mode 100644 index 3c4a6f8c3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMAfter_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json deleted file mode 100644 index efe8e42af..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json deleted file mode 100644 index 674790bc6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcallcode_101_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json deleted file mode 100644 index d0ff145e6..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "static_callcodecallcallcode_101_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "20000000000", - "storage" : { - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json deleted file mode 100644 index 0c50d3d14..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "static_callcodecallcallcode_101_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json deleted file mode 100644 index 8d7f6d752..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "static_callcodecallcallcode_101_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json deleted file mode 100644 index 189251e6d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "static_callcodecallcallcode_101_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000010000000000", - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index ce38014a0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "static_callcodecallcallcode_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json deleted file mode 100644 index 5186812fe..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "static_callcodecallcallcode_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "30000000" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566204" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568184" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json deleted file mode 100644 index 1399d3285..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcodecallcodecall_110_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x01" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x03" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json deleted file mode 100644 index 46ad433f3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "static_callcodecallcodecall_110" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x05" : "0x00", - "0x06" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x01", - "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x06" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 5 (CALLER))}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (SSTORE 6 (CALLER))}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json deleted file mode 100644 index 1399d3285..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcodecallcodecall_110_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x01" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x014a" : "0x1000000000000000000000000000000000000003", - "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x0150" : "0x40", - "0x0152" : "0x26", - "0x0154" : "0x01", - "0x03" : "0x01", - "0x04" : "0x1000000000000000000000000000000000000000", - "0x07" : "0x03" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (STATICCALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json deleted file mode 100644 index 4a2e3ee64..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json deleted file mode 100644 index 9773cacdc..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json deleted file mode 100644 index 47dae0f3d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMAfter2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json deleted file mode 100644 index 148b58226..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json deleted file mode 100644 index 6c89d2003..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMAfter_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json deleted file mode 100644 index 529c7676c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMAfter_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json deleted file mode 100644 index e6f15b515..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json deleted file mode 100644 index 23bc61841..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "static_callcodecallcodecall_110_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json deleted file mode 100644 index 58d2e2ca0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "static_callcodecallcodecall_110_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000001" : { - "balance" : "1000000010000000000" - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json deleted file mode 100644 index 9fe15f353..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "static_callcodecallcodecall_110_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x01" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json deleted file mode 100644 index 286ab5978..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "static_callcodecallcodecall_110_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json deleted file mode 100644 index bc515c703..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "static_callcodecallcodecall_110_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index cdf0503f1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "static_callcodecallcodecall_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566210" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568190" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json deleted file mode 100644 index 5a739a451..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "static_callcodecallcodecall_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "30000000" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "566204" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "568184" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json deleted file mode 100644 index aafe3d123..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "static_callcodecallcodecallcode_111_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : "Frontier", - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead", "EIP158", "EIP150"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x01", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 1 0 64 0 64) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01Filler.json new file mode 100644 index 000000000..e78863da8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01Filler.json @@ -0,0 +1,75 @@ +{ + "static_calldelcode_01" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d20dc" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01_OOGEFiller.json new file mode 100644 index 000000000..1f19d6009 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01_OOGEFiller.json @@ -0,0 +1,83 @@ +{ + "static_calldelcode_01_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac8" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json deleted file mode 100644 index 894cc2332..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158", "Frontier"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { - "balance" : "0" - }, - "1000000000000000000000000000000000000001": { - "storage" : { - "0x01" : "0x01" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Homestead"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { - "shouldnotexist" : "1" - }, - "1000000000000000000000000000000000000001": { - "storage" : { - "0x01" : "0x00" - } - } - } - } - ], - "pre" : - { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "100000", - "code" : "{(SSTORE 1 1)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" - ], - "gasLimit" : [ - "96000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json deleted file mode 100644 index 09ff782f0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "static_contractCreationOOGdontLeaveEmptyContractViaTransaction" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, - "network" : ["Homestead"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1}, - "network" : ["Frontier", "EIP158", "EIP150"], - "result" : { - "6295ee1b4f6dd65047762f924ecd367c17eabf8f": { - } - } - } - ], - "pre" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{(SSTORE 1 1)}", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" - ], - "gasLimit" : [ - "96000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json deleted file mode 100644 index 87fe60505..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log0_emptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json deleted file mode 100644 index 6f747db13..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log0_logMemStartTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json deleted file mode 100644 index 69fc069bb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log0_logMemsizeTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json deleted file mode 100644 index 34433b73e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log0_logMemsizeZero" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json deleted file mode 100644 index ccf88cb35..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log0_nonEmptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json deleted file mode 100644 index c3dd8246f..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log0_nonEmptyMem_logMemSize1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "2100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json deleted file mode 100644 index e6ff51410..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log0_nonEmptyMem_logMemSize1_logMemStart31" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json deleted file mode 100644 index 1acb969f0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_CallerFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_Caller" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json deleted file mode 100644 index feb23c0df..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_MaxTopic" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json deleted file mode 100644 index 0e8db864c..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_emptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG1 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json deleted file mode 100644 index da3cb4ccd..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log1_logMemStartTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json deleted file mode 100644 index 58a016e57..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log1_logMemsizeTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json deleted file mode 100644 index e478e8201..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_logMemsizeZero" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json deleted file mode 100644 index fe0353ff5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_nonEmptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json deleted file mode 100644 index 9996f6d6e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_nonEmptyMem_logMemSize1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json deleted file mode 100644 index 9f3cdd9c4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log1_nonEmptyMem_logMemSize1_logMemStart31" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json deleted file mode 100644 index 108f13407..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_CallerFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_Caller" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json deleted file mode 100644 index ad2cf521b..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_MaxTopicFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_MaxTopic" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json deleted file mode 100644 index a4b2557ea..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_emptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_emptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG2 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json deleted file mode 100644 index 205ca9cbb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemStartTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log2_logMemStartTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json deleted file mode 100644 index cdd02eaa3..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log2_logMemsizeTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json deleted file mode 100644 index 13cfe0ae7..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_logMemsizeZeroFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_logMemsizeZero" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json deleted file mode 100644 index 798859cec..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_nonEmptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json deleted file mode 100644 index 9030fec0a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_nonEmptyMem_logMemSize1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json deleted file mode 100644 index 615149e78..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log2_nonEmptyMem_logMemSize1_logMemStart31" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json deleted file mode 100644 index c3a056e95..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_CallerFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_Caller" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json deleted file mode 100644 index d2bdeae9a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_MaxTopicFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_MaxTopic" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json deleted file mode 100644 index adb36977a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_PCFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_PC" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json deleted file mode 100644 index 945ff9f22..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_emptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_emptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG3 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json deleted file mode 100644 index 315a4d30a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemStartTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log3_logMemStartTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json deleted file mode 100644 index 24b64c0a8..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log3_logMemsizeTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json deleted file mode 100644 index 2ac8451d1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_logMemsizeZeroFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_logMemsizeZero" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json deleted file mode 100644 index d14c0efb1..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_nonEmptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json deleted file mode 100644 index 6d98bd14d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_nonEmptyMem_logMemSize1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json deleted file mode 100644 index e3edb402e..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log3_nonEmptyMem_logMemSize1_logMemStart31" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json deleted file mode 100644 index 8db8f9ba0..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_CallerFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_Caller" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json deleted file mode 100644 index 2e8f47925..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_MaxTopicFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_MaxTopic" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json deleted file mode 100644 index e5a7d3a56..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_PCFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_PC" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 (PC) (PC) (PC) (PC) ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json deleted file mode 100644 index acca8a112..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_emptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_emptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG4 0 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json deleted file mode 100644 index 3eeb7f647..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemStartTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log4_logMemStartTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json deleted file mode 100644 index 86e1930ed..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeTooHighFiller.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "static_log4_logMemsizeTooHigh" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json deleted file mode 100644 index da17539b4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_logMemsizeZeroFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_logMemsizeZero" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json deleted file mode 100644 index 0c4432ffd..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMemFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_nonEmptyMem" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json deleted file mode 100644 index 87d44cdde..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_nonEmptyMem_logMemSize1" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json deleted file mode 100644 index 2ab96ee07..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_log4_nonEmptyMem_logMemSize1_logMemStart31" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json deleted file mode 100644 index 0f2667d87..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_logInOOG_CallFiller.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "static_logInOOG_Call" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead", "EIP158", "EIP150"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x" : "0x00" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 100000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "1000000000000000000", - "code" : "{ (LOG0 0 32) (MLOAD 0xffffffffffffffff) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "210000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "100000" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json deleted file mode 100644 index badb2b3d4..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "static_makeMoney" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "771500" - }, - "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000" - } - } - }, - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "999999999999999987" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "931546" - }, - "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000023" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (STATICCALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 23 0 0 0 0) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "0x600160015532600255", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "228500" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json deleted file mode 100644 index b49ee2d14..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refundSuicide50procentCapFiller.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "static_refundSuicide50procentCap" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x0a" : "0x01", - "0x0b" : "0x01", - "0x16" : "0x984376", - "0x17" : "0x96bc55" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "70695" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "9929305", - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "storage" : { - "0x0a" : "0x01", - "0x0b" : "0x01", - "0x16" : "0x9843b6", - "0x17" : "0x96a679" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "73493" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "9926507", - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 22 ]] (GAS) [[ 10 ]] 1 [[ 11 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 [[ 7 ]] 0 [[ 8 ]] 0 [[ 23 ]] (GAS) }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01", - "0x02" : "0x01", - "0x03" : "0x01", - "0x04" : "0x01", - "0x05" : "0x01", - "0x06" : "0x01", - "0x07" : "0x01", - "0x08" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "10000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json deleted file mode 100644 index 177f4bf6a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "static_refund_CallA" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "31070" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1968920", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "storage" : { - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "31730" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1968260", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "storage" : { - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 5500 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "2000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] 0 }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "200000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json deleted file mode 100644 index 23600668a..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_OOGFiller.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "static_refund_CallA_OOG" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["ALL"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "storage" : { - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "31069" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "268931", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "storage" : { - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 6000 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "300000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] 0 }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "31069" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json deleted file mode 100644 index 5c3a93498..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallA_notEnoughGasInCallFiller.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "static_refund_CallA_notEnoughGasInCall" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "1000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000010", - "storage" : { - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "31069" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "68921", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "storage" : { - "0x01" : "0x01" - } - } - } - }, - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000010", - "storage" : { - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "31729" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "68261", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "storage" : { - "0x01" : "0x01" - } - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 5005 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] 0 }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "85000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json deleted file mode 100644 index 99b7ec811..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_refund_CallToSuicideNoStorage" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "20663" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99979327", - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "23461" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99976529", - "nonce" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json deleted file mode 100644 index 6351fceec..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideStorageFiller.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_refund_CallToSuicideStorage" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "20663" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99979327", - "nonce" : "1" - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "23461" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99976529", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "shouldnotexist" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json deleted file mode 100644 index 6948922cb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_refund_CallToSuicideTwice" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : 0, - "gas" : -1, - "value" : -1 - }, - "network" : ["Frontier", "Homestead"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "20697" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99979293", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "shouldnotexist" : "1" - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["EIP150", "EIP158"], - "result" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "2000000000000000010", - "storage" : { - "0x" : "0x01", - "0x01" : "0x01" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "28649" - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "99971341", - "nonce" : "1" - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "shouldnotexist" : "1" - } - } - } - ], - "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "100000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - }, - "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "1000000000000000000", - "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", - "nonce" : "0", - "storage" : { - "0x01" : "0x01" - } - } - }, - "transaction" : { - "data" : [ - "0x00000000000000000000000000000000000000000000000000000000000001f4", "0x0000000000000000000000000000000000000000000000000000000000010000" - ], - "gasLimit" : [ - "10000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "value" : [ - "10" - ] - } - } -} -- cgit From 9fb1996e490f7706ce15f2e347fe8e2d9c35bb6e Mon Sep 17 00:00:00 2001 From: Dimitry Date: Mon, 22 May 2017 20:37:25 +0300 Subject: generate finished tests for staticcall --- .../static_Call50000_identity2Filler.json | 39 +---------------- .../static_Call50000_identityFiller.json | 8 ++-- .../static_Call50000_rip160Filler.json | 51 +++------------------- .../static_Call50000_sha256Filler.json | 12 ++--- .../static_callcallcallcode_001_2Filler.json | 2 +- .../static_callcallcodecall_010_OOGEFiller.json | 4 +- 6 files changed, 20 insertions(+), 96 deletions(-) (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json index c249cb019..829d44274 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json @@ -11,7 +11,7 @@ "expect" : [ { "indexes" : { - "data" : 0, + "data" : -1, "gas" : -1, "value" : -1 }, @@ -45,43 +45,6 @@ } } } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431728132084", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "40079361", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", - "nonce" : "0x00", - "storage" : { - } - }, - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0x02df54b2" - } - } - } } ], "pre" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json index dc44d1545..6e666160e 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json @@ -55,14 +55,14 @@ "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431728282105", + "balance" : "340282366920938463463374607431681314841", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "39929340", + "balance" : "86896604", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -77,8 +77,8 @@ }, "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", - "0x01" : "0x02e19eb7" + "0x00" : "0x00", + "0x01" : "0x14f4d7" } } } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json index 54ea1f5df..f579b4b2d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json @@ -11,69 +11,30 @@ "expect" : [ { "indexes" : { - "data" : 0, + "data" : -1, "gas" : -1, "value" : -1 }, "network" : ["Metropolis"], "result" : { "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431449147108", + "balance" : "340282366920938463463374607427904514059", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "319064337", + "balance" : "3863697386", "code" : "0x", "nonce" : "0x00", "storage" : { } }, "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "4503599627370505", + "balance" : "4503599627370495", "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b608051600155", "nonce" : "0x00", - "storage" : { - "0x00" : "0x01", - "0x01" : "0xc350" - } - }, - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x01", - "0x01" : "0xd6ee8452" - } - } - } - }, - { - "indexes" : { - "data" : 1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431699032105", - "code" : "0x", - "nonce" : "0x01", - "storage" : { - } - }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "69179340", - "code" : "0x", - "nonce" : "0x00", - "storage" : { - } - }, - "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "4503599627370505", - "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", "storage" : { "0x00" : "0x00", "0x01" : "0x00" @@ -81,8 +42,8 @@ }, "1000000000000000000000000000000000000000" : { "storage" : { - "0x00" : "0x01", - "0x01" : "0xe5d37597" + "0x00" : "0x00", + "0x01" : "0x03a7b579" } } } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json index 8b77958dd..91933ac3d 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json @@ -21,14 +21,14 @@ "shouldnotexist" : "1" }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431476147108", + "balance" : "340282366920938463463374607430538347108", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "292064337", + "balance" : "1229864337", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -46,7 +46,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0xd88a8112" + "0x01" : "0xa0a4cfd2" } } } @@ -63,14 +63,14 @@ "shouldnotexist" : "1" }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "340282366920938463463374607431726032105", + "balance" : "340282366920938463463374607430788232105", "code" : "0x", "nonce" : "0x01", "storage" : { } }, "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "42179340", + "balance" : "979979340", "code" : "0x", "nonce" : "0x00", "storage" : { @@ -88,7 +88,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0xe76f7257" + "0x01" : "0xaf89c117" } } } diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json index 59681b225..6699575c2 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json @@ -41,7 +41,7 @@ "a000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0x2cb205" + "0x01" : "0x2ccc31" } }, "1000000000000000000000000000000000000002" : { diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json index 465327a5c..83fd92948 100644 --- a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json @@ -20,7 +20,7 @@ "1000000000000000000000000000000000000000" : { "storage" : { "0x00" : "0x01", - "0x01" : "0x01a7d2" + "0x01" : "0x7251" } } } @@ -50,7 +50,7 @@ }, "2000000000000000000000000000000000000002" : { "balance" : "0", - "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (STORE 1 1) }", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 1 1) }", "nonce" : "0", "storage" : { } -- cgit From 6b8b58d56f6c87fc9dd934edd8dfc70a25404210 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Tue, 23 May 2017 18:15:45 +0300 Subject: update static tests --- .../stStaticCall/done/static_ABAcalls0Filler.json | 128 +++++++++++++++ .../stStaticCall/done/static_ABAcalls1Filler.json | 126 +++++++++++++++ .../stStaticCall/done/static_ABAcalls2Filler.json | 146 +++++++++++++++++ .../stStaticCall/done/static_ABAcalls3Filler.json | 146 +++++++++++++++++ .../done/static_ABAcallsSuicide0Filler.json | 116 ++++++++++++++ .../done/static_ABAcallsSuicide1Filler.json | 77 +++++++++ .../done/static_Call1024BalanceTooLow2Filler.json | 103 ++++++++++++ .../done/static_Call1024BalanceTooLowFiller.json | 113 +++++++++++++ .../done/static_Call1024OOGFiller.json | 105 ++++++++++++ .../done/static_Call1024PreCalls2Filler.json | 115 ++++++++++++++ .../done/static_Call1024PreCalls3Filler.json | 107 +++++++++++++ .../done/static_Call1024PreCallsFiller.json | 118 ++++++++++++++ .../stStaticCall/done/static_Call10Filler.json | 111 +++++++++++++ .../done/static_Call1MB1024CalldepthFiller.json | 119 ++++++++++++++ .../stStaticCall/done/static_Call50000Filler.json | 155 ++++++++++++++++++ .../done/static_Call50000_ecrecFiller.json | 134 ++++++++++++++++ .../done/static_Call50000_identity2Filler.json | 97 ++++++++++++ .../done/static_Call50000_identityFiller.json | 134 ++++++++++++++++ .../done/static_Call50000_rip160Filler.json | 99 ++++++++++++ .../done/static_Call50000_sha256Filler.json | 144 +++++++++++++++++ .../static_Call50000bytesContract50_1Filler.json | 158 ++++++++++++++++++ .../static_Call50000bytesContract50_2Filler.json | 160 +++++++++++++++++++ .../static_Call50000bytesContract50_3Filler.json | 158 ++++++++++++++++++ ...codeConsumeMoreGasThenTransactionHasFiller.json | 128 +++++++++++++++ ...AskMoreGasOnDepth2ThenTransactionHasFiller.json | 159 +++++++++++++++++++ .../done/static_callcall_00Filler.json | 146 +++++++++++++++++ .../done/static_callcall_00_OOGEFiller.json | 148 +++++++++++++++++ .../done/static_callcall_00_OOGE_1Filler.json | 137 ++++++++++++++++ .../done/static_callcall_00_OOGE_2Filler.json | 110 +++++++++++++ .../done/static_callcall_00_SuicideEndFiller.json | 77 +++++++++ .../done/static_callcallcall_000Filler.json | 176 +++++++++++++++++++++ .../done/static_callcallcall_000_OOGEFiller.json | 152 ++++++++++++++++++ .../static_callcallcall_000_OOGMAfter2Filler.json | 99 ++++++++++++ .../static_callcallcall_000_OOGMAfterFiller.json | 100 ++++++++++++ .../static_callcallcall_000_OOGMBeforeFiller.json | 98 ++++++++++++ .../static_callcallcall_000_SuicideEndFiller.json | 81 ++++++++++ ...tatic_callcallcall_000_SuicideMiddleFiller.json | 85 ++++++++++ .../static_callcallcall_ABCB_RECURSIVEFiller.json | 86 ++++++++++ .../done/static_callcallcallcode_001Filler.json | 162 +++++++++++++++++++ .../done/static_callcallcallcode_001_2Filler.json | 152 ++++++++++++++++++ .../static_callcallcallcode_001_OOGEFiller.json | 106 +++++++++++++ .../static_callcallcallcode_001_OOGE_2Filler.json | 114 +++++++++++++ ...atic_callcallcallcode_001_OOGMAfter2Filler.json | 106 +++++++++++++ ...tatic_callcallcallcode_001_OOGMAfterFiller.json | 118 ++++++++++++++ ...tic_callcallcallcode_001_OOGMAfter_2Filler.json | 115 ++++++++++++++ ...tic_callcallcallcode_001_OOGMAfter_3Filler.json | 107 +++++++++++++ ...tic_callcallcallcode_001_OOGMBefore2Filler.json | 106 +++++++++++++ ...atic_callcallcallcode_001_OOGMBeforeFiller.json | 116 ++++++++++++++ ...tic_callcallcallcode_001_SuicideEnd2Filler.json | 87 ++++++++++ ...atic_callcallcallcode_001_SuicideEndFiller.json | 104 ++++++++++++ ..._callcallcallcode_001_SuicideMiddle2Filler.json | 86 ++++++++++ ...c_callcallcallcode_001_SuicideMiddleFiller.json | 103 ++++++++++++ ...tic_callcallcallcode_ABCB_RECURSIVE2Filler.json | 86 ++++++++++ ...atic_callcallcallcode_ABCB_RECURSIVEFiller.json | 90 +++++++++++ .../done/static_callcallcode_01_2Filler.json | 112 +++++++++++++ .../done/static_callcallcode_01_OOGE_2Filler.json | 79 +++++++++ .../static_callcallcode_01_SuicideEnd2Filler.json | 79 +++++++++ .../static_callcallcode_01_SuicideEndFiller.json | 91 +++++++++++ .../done/static_callcallcodecall_010Filler.json | 82 ++++++++++ .../done/static_callcallcodecall_010_2Filler.json | 98 ++++++++++++ .../static_callcallcodecall_010_OOGEFiller.json | 90 +++++++++++ .../static_callcallcodecall_010_OOGE_2Filler.json | 86 ++++++++++ ...atic_callcallcodecall_010_OOGMAfter2Filler.json | 86 ++++++++++ ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 92 +++++++++++ ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 89 +++++++++++ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 89 +++++++++++ ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 88 +++++++++++ ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 92 +++++++++++ ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 84 ++++++++++ ...atic_callcallcodecall_010_SuicideEndFiller.json | 97 ++++++++++++ ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 +++++++++++ ...c_callcallcodecall_010_SuicideMiddleFiller.json | 82 ++++++++++ ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 83 ++++++++++ ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 87 ++++++++++ .../static_callcallcodecallcode_011_2Filler.json | 98 ++++++++++++ .../done/static_calldelcode_01Filler.json | 75 +++++++++ .../done/static_calldelcode_01_OOGEFiller.json | 83 ++++++++++ ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 108 ------------- ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 105 ------------ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 102 ------------ ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 101 ------------ ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 108 ------------- ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 85 ---------- ...atic_callcallcodecall_010_SuicideEndFiller.json | 97 ------------ ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 ----------- ...c_callcallcodecall_010_SuicideMiddleFiller.json | 97 ------------ ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 86 ---------- ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 90 ----------- .../static_callcallcodecallcode_011_2Filler.json | 86 ---------- ...tatic_callcallcodecall_010_OOGMAfterFiller.json | 92 +++++++++++ ...tic_callcallcodecall_010_OOGMAfter_2Filler.json | 89 +++++++++++ ...tic_callcallcodecall_010_OOGMAfter_3Filler.json | 89 +++++++++++ ...tic_callcallcodecall_010_OOGMBefore2Filler.json | 88 +++++++++++ ...atic_callcallcodecall_010_OOGMBeforeFiller.json | 92 +++++++++++ ...tic_callcallcodecall_010_SuicideEnd2Filler.json | 84 ++++++++++ ...atic_callcallcodecall_010_SuicideEndFiller.json | 97 ++++++++++++ ..._callcallcodecall_010_SuicideMiddle2Filler.json | 91 +++++++++++ ...c_callcallcodecall_010_SuicideMiddleFiller.json | 82 ++++++++++ ...tic_callcallcodecall_ABCB_RECURSIVE2Filler.json | 83 ++++++++++ ...atic_callcallcodecall_ABCB_RECURSIVEFiller.json | 87 ++++++++++ .../static_callcallcodecallcode_011_2Filler.json | 98 ++++++++++++ 101 files changed, 9514 insertions(+), 1156 deletions(-) create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide0Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLow2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLowFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024OOGFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCallsFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call10Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call1MB1024CalldepthFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_ecrecFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identity2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identityFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_rip160Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_sha256Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_1Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGE_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecallcode_011_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01_OOGEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json delete mode 100644 src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json create mode 100644 src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json (limited to 'src/GeneralStateTestsFiller/stStaticCall') diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls0Filler.json new file mode 100644 index 000000000..b3577feba --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls0Filler.json @@ -0,0 +1,128 @@ +{ + "static_ABAcalls0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "storage" : { + "0x24" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0ce29d" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "storage" : { + "0x24" : "0x00" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0df479" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE 1 (PC)) (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" + ], + "gasLimit" : [ + "1000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls1Filler.json new file mode 100644 index 000000000..247233357 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls1Filler.json @@ -0,0 +1,126 @@ +{ + "static_ABAcalls1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8b81b" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b957609" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE (PC) (ADD 1 (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" + ], + "gasLimit" : [ + "1000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls2Filler.json new file mode 100644 index 000000000..cda5a1a6e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls2Filler.json @@ -0,0 +1,146 @@ +{ + "static_ABAcalls2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8c976" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b955b28" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" + ], + "gasLimit" : [ + "1000000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls3Filler.json new file mode 100644 index 000000000..ee91e7ea7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcalls3Filler.json @@ -0,0 +1,146 @@ +{ + "static_ABAcalls3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0467fd" + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x95c35c" + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide0Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide0Filler.json new file mode 100644 index 000000000..72931d652 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide0Filler.json @@ -0,0 +1,116 @@ +{ + "static_ABAcallsSuicide0" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x962352" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x96f73c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", + "storage" : { + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE (PC) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0)) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", + "storage" : { + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE (PC) (ADD 1 (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide1Filler.json new file mode 100644 index 000000000..9327c6e1e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_ABAcallsSuicide1Filler.json @@ -0,0 +1,77 @@ +{ + "static_ABAcallsSuicide1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["EIP150", "EIP158", "Metropolis"], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "shouldnotexist" : "1" + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + } + } + } + ], + "pre" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x00000000000000000000000000000000000000000000000000000000000186a0", "0x00000000000000000000000000000000000000000000000000000000000486a0" + ], + "gasLimit" : [ + "10000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", + "value" : [ + "100000" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLow2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLow2Filler.json new file mode 100644 index 000000000..7aff2173a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLow2Filler.json @@ -0,0 +1,103 @@ +{ + "static_Call1024BalanceTooLow2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : [ "Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : [ "Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1000001848dd" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "0x10000000d788" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLowFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLowFiller.json new file mode 100644 index 000000000..afd42b8c9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024BalanceTooLowFiller.json @@ -0,0 +1,113 @@ +{ + "static_Call1024BalanceTooLow" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "2675000", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1000001848dd" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "17592186099592" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024OOGFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024OOGFiller.json new file mode 100644 index 000000000..c84f7cb2e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024OOGFiller.json @@ -0,0 +1,105 @@ +{ + "static_Call1024OOG" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x03e9" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x06ba56" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xebe90c" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV (MLOAD 0) 1025))) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 32 (ADD 1(MUL (MLOAD 0) 1000))) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "15720826" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls2Filler.json new file mode 100644 index 000000000..11ae1b7da --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls2Filler.json @@ -0,0 +1,115 @@ +{ + "static_Call1024PreCalls2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffea056fd" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdcd15d" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "{ (MSTORE 0 1)}", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (DELEGATECALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls3Filler.json new file mode 100644 index 000000000..378ddcf9e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCalls3Filler.json @@ -0,0 +1,107 @@ +{ + "static_Call1024PreCalls3" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis" ], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCallsFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCallsFiller.json new file mode 100644 index 000000000..fe36dc627 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1024PreCallsFiller.json @@ -0,0 +1,118 @@ +{ + "static_Call1024PreCalls" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call10Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call10Filler.json new file mode 100644 index 000000000..d8aaead40 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call10Filler.json @@ -0,0 +1,111 @@ +{ + "static_Call10" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "0x7fffffffffffffff", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "1", + "0x01" : "0x0a" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffdadb4" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffef99b" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) (MSTORE 0 (STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i)}", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "0x7ffffffffffffff0" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1MB1024CalldepthFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1MB1024CalldepthFiller.json new file mode 100644 index 000000000..fb3d7110b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call1MB1024CalldepthFiller.json @@ -0,0 +1,119 @@ +{ + "static_Call1MB1024Calldepth" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374606576630825020" + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430644755785" + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0xfffffffffffff", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (STATICCALL (- (GAS) 1005000) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0) [[ 2 ]] 1 ) }", + "nonce" : "0", + "storage" : { + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (MSTORE 0 (+ (MLOAD 0) 1)) (if (LT (MLOAD 0) 1024) (MSTORE 32 (STATICCALL (- (GAS) 1005000) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0)) (MSTORE 64 1) ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000Filler.json new file mode 100644 index 000000000..2453b509c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000Filler.json @@ -0,0 +1,155 @@ +{ + "static_Call50000" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "86000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431684514059", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "83697386", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x142e79" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431729032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "39179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02bb7917" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "85000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_ecrecFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_ecrecFiller.json new file mode 100644 index 000000000..be5f7ffa0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_ecrecFiller.json @@ -0,0 +1,134 @@ +{ + "static_Call50000_ecrec" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "95000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431675162497", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "93048948", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x16724f" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431704032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "64179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01cef637" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 500 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 500 1 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "94500000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identity2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identity2Filler.json new file mode 100644 index 000000000..829d44274 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identity2Filler.json @@ -0,0 +1,97 @@ +{ + "static_Call50000_identity2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 1 50000)) ) (MSTORE 32 @i) (MSTORE 64 @1 ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identityFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identityFiller.json new file mode 100644 index 000000000..6e666160e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_identityFiller.json @@ -0,0 +1,134 @@ +{ + "static_Call50000_identity" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "88250000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_rip160Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_rip160Filler.json new file mode 100644 index 000000000..f579b4b2d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_rip160Filler.json @@ -0,0 +1,99 @@ +{ + "static_Call50000_rip160" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607427904514059", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3863697386", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x03a7b579" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 3 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 3 0 50000 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "3925000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_sha256Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_sha256Filler.json new file mode 100644 index 000000000..91933ac3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000_sha256Filler.json @@ -0,0 +1,144 @@ +{ + "static_Call50000_sha256" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430538347108", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1229864337", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0xc350" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xa0a4cfd2" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430788232105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "979979340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000526001608051016080526000565b608051602052", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xaf89c117" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 2 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 2 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "3925000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_1Filler.json new file mode 100644 index 000000000..8cc5fa611 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_1Filler.json @@ -0,0 +1,158 @@ +{ + "static_Call50000bytesContract50_1" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "6109295", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78bc6eb4" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016000", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_2Filler.json new file mode 100644 index 000000000..0bb1875c7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_2Filler.json @@ -0,0 +1,160 @@ +{ + "static_Call50000bytesContract50_2" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3109445", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78ea34de" + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_3Filler.json new file mode 100644 index 000000000..31b34cd57 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_Call50000bytesContract50_3Filler.json @@ -0,0 +1,158 @@ +{ + "static_Call50000bytesContract50_3" : { + "env" : { + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "312795", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd7914e148" + } + } + } + } + ], + "pre" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", + "storage" : { + } + }, + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", + "nonce" : "0", + "storage" : { + } + }, + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "882500000000" + ], + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "10" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json new file mode 100644 index 000000000..6f32e77b0 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json @@ -0,0 +1,128 @@ +{ + "static_CallAndCallcodeConsumeMoreGasThenTransactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x08" : "0x00", + "0x09" : "0x00", + "0x0a" : "0x00" + } + }, + "1000000000000000000000000000000000000103" : { + "code" : "0x6012600055", + "nonce" : "0x00", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08aa2f", + "0x09" : "0x01", + "0x0a" : "0x01" + } + }, + "2000000000000000000000000000000000000103" : { + "code" : "0x6012600052", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.", + "code" : "Staticcall goes oog and eats 600k gas", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "storage": { + } + }, + "1000000000000000000000000000000000000103" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be 12 in the post state", + "code" : "{ (SSTORE 0 0x12) } ", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.", + "code" : "Staticcall goes oog and eats 600k gas", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "storage": { + } + }, + "2000000000000000000000000000000000000103" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 0 0x12) } ", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json new file mode 100644 index 000000000..59710ceed --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json @@ -0,0 +1,159 @@ +{ + "static_CallAskMoreGasOnDepth2ThenTransactionHas" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08aa2f", + "0x09" : "0x01" + } + }, + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x04df0e" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08aa2f", + "0x09" : "0x01" + } + }, + "2000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "2000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x07dd3b" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "ordinal call should work but on second depth it has call that asks more gas than left", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x1000000000000000000000000000000000000107 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000107" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0)) } ", + "storage": { + } + }, + "1000000000000000000000000000000000000108" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be set in the post state", + "code" : "{ (SSTORE 8 (GAS))} ", + "storage": { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0", + "code" : "ordinal call should work but on second depth it has call that asks more gas than left", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x2000000000000000000000000000000000000107 0 0 0 0)) } ", + "storage": { + } + }, + "2000000000000000000000000000000000000107" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000108 0 0 0 0)) } ", + "storage": { + } + }, + "2000000000000000000000000000000000000108" : { + "balance" : "0", + "nonce" : "0", + "code" : "should be set in the post state", + "code" : "{ (MSTORE 8 (GAS))} ", + "storage": { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "600000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00Filler.json new file mode 100644 index 000000000..6dfbe99f2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00Filler.json @@ -0,0 +1,146 @@ +{ + "static_callcall_00" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fea6" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccedd" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 1) (MSTORE 32 (CALLER)) (MSTORE 64 (CALLVALUE)) (MSTORE 96 (ADDRESS)) (MSTORE 128 (ORIGIN)) (MSTORE 160 (CALLDATASIZE)) (MSTORE 192 (CODESIZE)) (MSTORE 224 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGEFiller.json new file mode 100644 index 000000000..f30e80982 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGEFiller.json @@ -0,0 +1,148 @@ +{ + "static_callcall_00_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_1Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_1Filler.json new file mode 100644 index 000000000..9cc5537bc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_1Filler.json @@ -0,0 +1,137 @@ +{ + "static_callcall_00_OOGE_1" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "storage": {} + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "380066" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_2Filler.json new file mode 100644 index 000000000..39e859850 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_OOGE_2Filler.json @@ -0,0 +1,110 @@ +{ + "static_callcall_00_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "storage": {} + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "storage": {} + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "150066" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_SuicideEndFiller.json new file mode 100644 index 000000000..f0049132e --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcall_00_SuicideEndFiller.json @@ -0,0 +1,77 @@ +{ + "static_callcall_00_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["ALL"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 32 1) (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000Filler.json new file mode 100644 index 000000000..494ed5d0f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000Filler.json @@ -0,0 +1,176 @@ +{ + "static_callcallcall_000" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fbaa" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGEFiller.json new file mode 100644 index 000000000..1c62e31ad --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGEFiller.json @@ -0,0 +1,152 @@ +{ + "static_callcallcall_000_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x2000000000000000000000000000000000000003 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfter2Filler.json new file mode 100644 index 000000000..05580b402 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfter2Filler.json @@ -0,0 +1,99 @@ +{ + "static_callcallcall_000_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x6f" : "0x015cb7" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 56000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 45000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfterFiller.json new file mode 100644 index 000000000..26559adaf --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMAfterFiller.json @@ -0,0 +1,100 @@ +{ + "static_callcallcall_000_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x6f" : "0x014c81" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS)}", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMBeforeFiller.json new file mode 100644 index 000000000..5bf67f78f --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_OOGMBeforeFiller.json @@ -0,0 +1,98 @@ +{ + "static_callcallcall_000_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015d7b", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideEndFiller.json new file mode 100644 index 000000000..8c73fcdcc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideEndFiller.json @@ -0,0 +1,81 @@ +{ + "static_callcallcall_000_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideMiddleFiller.json new file mode 100644 index 000000000..78d8a8394 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_000_SuicideMiddleFiller.json @@ -0,0 +1,85 @@ +{ + "static_callcallcall_000_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..3ea7efff9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,86 @@ +{ + "static_callcallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "139959" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 4 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 5 1) (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 6 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001Filler.json new file mode 100644 index 000000000..47ba77e15 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001Filler.json @@ -0,0 +1,162 @@ +{ + "static_callcallcallcode_001" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fba1" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_2Filler.json new file mode 100644 index 000000000..6699575c2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_2Filler.json @@ -0,0 +1,152 @@ +{ + "static_callcallcallcode_001_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x283b4b" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc31" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 4 1) (CALLCODE 250000 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 6 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGEFiller.json new file mode 100644 index 000000000..edfbbddc9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGEFiller.json @@ -0,0 +1,106 @@ +{ + "static_callcallcallcode_001_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGE_2Filler.json new file mode 100644 index 000000000..cd4fb7884 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGE_2Filler.json @@ -0,0 +1,114 @@ +{ + "static_callcallcallcode_001_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01574b" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter2Filler.json new file mode 100644 index 000000000..a652a4e8d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter2Filler.json @@ -0,0 +1,106 @@ +{ + "static_callcallcallcode_001_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfterFiller.json new file mode 100644 index 000000000..18e7cbd9d --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfterFiller.json @@ -0,0 +1,118 @@ +{ + "static_callcallcallcode_001_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_2Filler.json new file mode 100644 index 000000000..c53cdc1d5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_2Filler.json @@ -0,0 +1,115 @@ +{ + "static_callcallcallcode_001_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS)}", + "storage": {} + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_3Filler.json new file mode 100644 index 000000000..75310a2fb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMAfter_3Filler.json @@ -0,0 +1,107 @@ +{ + "static_callcallcallcode_001_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBefore2Filler.json new file mode 100644 index 000000000..7d29a9c74 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBefore2Filler.json @@ -0,0 +1,106 @@ +{ + "static_callcallcallcode_001_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c55", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBeforeFiller.json new file mode 100644 index 000000000..bf4c0f8d2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_OOGMBeforeFiller.json @@ -0,0 +1,116 @@ +{ + "static_callcallcallcode_001_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c58", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEnd2Filler.json new file mode 100644 index 000000000..57c3c4477 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEnd2Filler.json @@ -0,0 +1,87 @@ +{ + "static_callcallcallcode_001_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEndFiller.json new file mode 100644 index 000000000..32dbae7f5 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideEndFiller.json @@ -0,0 +1,104 @@ +{ + "static_callcallcallcode_001_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddle2Filler.json new file mode 100644 index 000000000..3441ae64a --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddle2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcallcode_001_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddleFiller.json new file mode 100644 index 000000000..2d8d04015 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_001_SuicideMiddleFiller.json @@ -0,0 +1,103 @@ +{ + "static_callcallcallcode_001_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..ea92ad3cf --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcallcode_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "140109" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..86a544ba9 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcallcode_ABCB_RECURSIVEFiller.json @@ -0,0 +1,90 @@ +{ + "static_callcallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "139959" + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 31 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 21 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_2Filler.json new file mode 100644 index 000000000..fc5ded686 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_2Filler.json @@ -0,0 +1,112 @@ +{ + "static_callcallcode_01_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d031d" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1d3d" + } + } + } + } + ], + "pre" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 250000 0x2000000000000000000000000000000000000002 0 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000000", + "0x0000000000000000000000002000000000000000000000000000000000000000" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_OOGE_2Filler.json new file mode 100644 index 000000000..174f238e2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_OOGE_2Filler.json @@ -0,0 +1,79 @@ +{ + "static_callcallcode_01_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac5" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEnd2Filler.json new file mode 100644 index 000000000..e8857d519 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEnd2Filler.json @@ -0,0 +1,79 @@ +{ + "static_callcallcode_01_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x2b1467" + } + + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEndFiller.json new file mode 100644 index 000000000..955ff3ee7 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcode_01_SuicideEndFiller.json @@ -0,0 +1,91 @@ +{ + "static_callcallcode_01_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x2b1467" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010Filler.json new file mode 100644 index 000000000..06c3a9eac --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010Filler.json @@ -0,0 +1,82 @@ +{ + "static_callcallcodecall_010" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1de0" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_2Filler.json new file mode 100644 index 000000000..59d6a4a9c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecall_010_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02d6" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1d02" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGEFiller.json new file mode 100644 index 000000000..83fd92948 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGEFiller.json @@ -0,0 +1,90 @@ +{ + "static_callcallcodecall_010_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7251" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 100000 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGE_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGE_2Filler.json new file mode 100644 index 000000000..0a9268d98 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGE_2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcodecall_010_OOGE_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a7e5" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 32 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000003", + "0x0000000000000000000000002000000000000000000000000000000000000003" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter2Filler.json new file mode 100644 index 000000000..5ccac8c53 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter2Filler.json @@ -0,0 +1,86 @@ +{ + "static_callcallcodecall_010_OOGMAfter2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfterFiller.json new file mode 100644 index 000000000..3024adfc2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfterFiller.json @@ -0,0 +1,92 @@ +{ + "static_callcallcodecall_010_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (STORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_2Filler.json new file mode 100644 index 000000000..842332cdb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_2Filler.json @@ -0,0 +1,89 @@ +{ + "static_callcallcodecall_010_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_3Filler.json new file mode 100644 index 000000000..d108230d8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMAfter_3Filler.json @@ -0,0 +1,89 @@ +{ + "static_callcallcodecall_010_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBefore2Filler.json new file mode 100644 index 000000000..dfbecc6b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBefore2Filler.json @@ -0,0 +1,88 @@ +{ + "static_callcallcodecall_010_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c69", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBeforeFiller.json new file mode 100644 index 000000000..17920cc48 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_OOGMBeforeFiller.json @@ -0,0 +1,92 @@ +{ + "static_callcallcodecall_010_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c6c", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEnd2Filler.json new file mode 100644 index 000000000..3686a20dc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEnd2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcallcodecall_010_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEndFiller.json new file mode 100644 index 000000000..650e94afe --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideEndFiller.json @@ -0,0 +1,97 @@ +{ + "static_callcallcodecall_010_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddle2Filler.json new file mode 100644 index 000000000..29f30f94c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddle2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcallcodecall_010_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddleFiller.json new file mode 100644 index 000000000..1a6b7fbc8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_010_SuicideMiddleFiller.json @@ -0,0 +1,82 @@ +{ + "static_callcallcodecall_010_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..f3f1ee55b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,83 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75c78" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..30c505b86 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,87 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecallcode_011_2Filler.json new file mode 100644 index 000000000..2374d62b1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_callcallcodecallcode_011_2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1cf3" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02c7" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01Filler.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01Filler.json new file mode 100644 index 000000000..e78863da8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01Filler.json @@ -0,0 +1,75 @@ +{ + "static_calldelcode_01" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d20dc" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 0x11223344) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01_OOGEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01_OOGEFiller.json new file mode 100644 index 000000000..1f19d6009 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/done/static_calldelcode_01_OOGEFiller.json @@ -0,0 +1,83 @@ +{ + "static_calldelcode_01_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac8" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json deleted file mode 100644 index 75b715624..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfterFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json deleted file mode 100644 index ace0681a5..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_2Filler.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json deleted file mode 100644 index 628c1a445..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMAfter_3Filler.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMAfter_3" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x020000", - "currentGasLimit" : "10000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "storage": {} - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "nonce" : "0", - "code" : "{ (SSTORE 3 1) }", - "storage": {} - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "nonce" : "0", - "code" : "", - "storage": {} - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json deleted file mode 100644 index 5d8ba9ade..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBefore2Filler.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMBefore2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json deleted file mode 100644 index b18faba61..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_OOGMBeforeFiller.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "static_callcallcodecall_010_OOGMBefore" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "0", - "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "0", - "code" : "{ (MSTORE 3 1) [[ 2 ]] (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "172000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json deleted file mode 100644 index b4352fe45..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEnd2Filler.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideEnd2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json deleted file mode 100644 index 2c3feb0bb..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideEndFiller.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideEnd" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00", - "0x03" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000" - }, - "1000000000000000000000000000000000000003" : { - "storage" : { - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json deleted file mode 100644 index e44dfdf57..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddle2Filler.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideMiddle2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json deleted file mode 100644 index d5b1c0d48..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_010_SuicideMiddleFiller.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "static_callcallcodecall_010_SuicideMiddle" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "storage" : { - "0x00" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "storage" : { - "0x02" : "0x00", - "0x03" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "10000000000", - "code" : "{ (SSTORE 3 1) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json deleted file mode 100644 index 7058e4952..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVE2Filler.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_callcallcodecall_ABCB_RECURSIVE2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json deleted file mode 100644 index 2e416307d..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecall_ABCB_RECURSIVEFiller.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "static_callcallcodecall_ABCB_RECURSIVE" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "3000000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { - "data" : -1, - "gas" : -1, - "value" : -1 - }, - "network" : ["Metropolis"], - "result" : { - "1000000000000000000000000000000000000000" : { - "storage" : { - "0x00" : "0x00", - "0x01" : "0x00" - } - }, - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "1000000000000000000000000000000000000002" : { - "storage" : { - "0x01" : "0x00", - "0x02" : "0x00" - } - }, - "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { - "balance" : "25026727" - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "10000000000", - "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "10000000000", - "code" : "{ [[ 2 ]] (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "30000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json deleted file mode 100644 index a965eae82..000000000 --- a/src/GeneralStateTestsFiller/stStaticCall/stStaticCallPending/static_callcallcodecallcode_011_2Filler.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "static_callcallcodecallcode_011_2" : { - "env" : { - "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "currentDifficulty" : "0x20000", - "currentGasLimit" : "30000000", - "currentNumber" : "1", - "currentTimestamp" : "1000", - "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" - }, - "expect" : [ - { - "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, - "network" : ["ALL"], - "result" : { - "1000000000000000000000000000000000000001" : { - "storage" : { - "0x01" : "0x00", - "0x014a" : "0x00", - "0x014c" : "0x00", - "0x0150" : "0x00", - "0x0152" : "0x00", - "0x0154" : "0x00", - "0x02" : "0x00", - "0x03" : "0x00", - "0x04" : "0x00", - "0x07" : "0x00" - } - } - } - } - ], - "pre" : { - "1000000000000000000000000000000000000000" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000001" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000002" : { - "balance" : "1000000000000000000", - "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", - "nonce" : "0", - "storage" : { - } - }, - "1000000000000000000000000000000000000003" : { - "balance" : "0", - "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", - "nonce" : "0", - "storage" : { - } - }, - "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "1000000000000000000", - "code" : "", - "nonce" : "0", - "storage" : { - } - } - }, - "transaction" : { - "data" : [ - "" - ], - "gasLimit" : [ - "3000000" - ], - "gasPrice" : "1", - "nonce" : "0", - "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "1000000000000000000000000000000000000000", - "value" : [ - "0" - ] - } - } -} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json new file mode 100644 index 000000000..4092b1b72 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json @@ -0,0 +1,92 @@ +{ + "static_callcallcodecall_010_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json new file mode 100644 index 000000000..842332cdb --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json @@ -0,0 +1,89 @@ +{ + "static_callcallcodecall_010_OOGMAfter_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json new file mode 100644 index 000000000..d108230d8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json @@ -0,0 +1,89 @@ +{ + "static_callcallcodecall_010_OOGMAfter_3" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "storage": {} + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "nonce" : "0", + "code" : "{ (MSTORE 3 1) }", + "storage": {} + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "code" : "", + "storage": {} + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000001", + "0x0000000000000000000000002000000000000000000000000000000000000001" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json new file mode 100644 index 000000000..dfbecc6b2 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json @@ -0,0 +1,88 @@ +{ + "static_callcallcodecall_010_OOGMBefore2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c69", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json new file mode 100644 index 000000000..17920cc48 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json @@ -0,0 +1,92 @@ +{ + "static_callcallcodecall_010_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c6c", + "0x02" : "0x00", + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "172000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json new file mode 100644 index 000000000..3686a20dc --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json @@ -0,0 +1,84 @@ +{ + "static_callcallcodecall_010_SuicideEnd2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json new file mode 100644 index 000000000..650e94afe --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json @@ -0,0 +1,97 @@ +{ + "static_callcallcodecall_010_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json new file mode 100644 index 000000000..29f30f94c --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json @@ -0,0 +1,91 @@ +{ + "static_callcallcodecall_010_SuicideMiddle2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json new file mode 100644 index 000000000..1a6b7fbc8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json @@ -0,0 +1,82 @@ +{ + "static_callcallcodecall_010_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json new file mode 100644 index 000000000..f3f1ee55b --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json @@ -0,0 +1,83 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : -1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75c78" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json new file mode 100644 index 000000000..30c505b86 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json @@ -0,0 +1,87 @@ +{ + "static_callcallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "30000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json new file mode 100644 index 000000000..2374d62b1 --- /dev/null +++ b/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json @@ -0,0 +1,98 @@ +{ + "static_callcallcodecallcode_011_2" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { "data" : 0, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1cf3" + } + } + } + }, + { + "indexes" : { "data" : 1, "gas" : -1, "value" : -1 }, + "network" : ["Metropolis"], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02c7" + } + } + } + } + ], + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) }", + "nonce" : "0", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x0000000000000000000000001000000000000000000000000000000000000002", + "0x0000000000000000000000002000000000000000000000000000000000000002" + ], + "gasLimit" : [ + "3000000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} -- cgit